我有一个表plist
与列list
,其中包含逗号分隔的ID(1,2,3,4)。我想要那些id不在逗号分隔列表中的成员的记录。SQL查询来查找记录无法在其他表
0
A
回答
1
,最好的办法是将逗号分隔列表分裂成一个表,然后搜索反对。
这里是分割字符串代码:
DECLARE @YourTable table (RowID int, Layout varchar(200))
INSERT @YourTable VALUES (1,'1,2,3,4')
;WITH SplitSting AS
(
SELECT
RowID,LEFT(Layout,CHARINDEX(',',Layout)-1) AS Part
,RIGHT(Layout,LEN(Layout)-CHARINDEX(',',Layout)) AS Remainder
FROM @YourTable
WHERE Layout IS NOT NULL AND CHARINDEX(',',Layout)>0
UNION ALL
SELECT
RowID,LEFT(Remainder,CHARINDEX(',',Remainder)-1)
,RIGHT(Remainder,LEN(Remainder)-CHARINDEX(',',Remainder))
FROM SplitSting
WHERE Remainder IS NOT NULL AND CHARINDEX(',',Remainder)>0
UNION ALL
SELECT
RowID,Remainder,null
FROM SplitSting
WHERE Remainder IS NOT NULL AND CHARINDEX(',',Remainder)=0
)
SELECT RowID,part FROM SplitSting ORDER BY RowID
+0
? –
+0
我正在使用SQL服务器 – AnandPhadke
相关问题
- 1. 查询其他记录的SQL子查询语法
- 2. SQL查询来查找重复的记录和更新表
- 3. 无法找出正确的SQL查询历史表记录
- 4. SQL服务器查询来查找值一列在其他列
- 5. SQL查询查找以前的记录
- 6. Jooq无法记录SQL查询
- 7. Codeigniter SQL查询其他表中没有记录
- 8. SQL查询来在相邻记录
- 9. SQL显示记录首先匹配查找表然后所有其他记录
- 10. SQL查询来返回记录有和无子记录
- 11. SQL查询来查找日期和时间之间记录
- 12. 查询获得其他表中存在其ID的记录列表的查询,但其他列的值不同
- 13. SQL查询查找表记录是同一表的一部分
- 14. 需要使用SQL查询来查找没有子记录的父记录
- 15. 查找一个表中没有的其他行 - SQL Server查询
- 16. SQL查询来根据其他领域
- 17. 查找记录在SQL
- 18. 查询问题在SQL查询找到空记录
- 19. 通过查询SQL查询只查找启用的记录
- 20. SQL Server查询查找重复记录加入查询
- 21. SQL查询来查找列
- 22. SQL查询来查找月
- 23. 无法加入其他表行条件,我的SQL查询
- 24. 用于查找表中新记录百分比的SQL查询
- 25. 查询在其他查询
- 26. sql查询找到唯一的记录
- 27. sql查询找到重复记录
- 28. SQL查询找到交织的记录
- 29. sql查询找到丢失的记录
- 30. 忽略来自SQL查询的记录
哪个RDBMS? SQL Server,MySQL发等 – hims056
唯一有效的答案应该是“重新设计你的DB模式和关于规范化写着”您正在使用哪个数据库服务器 – fancyPants