sql server数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中
sql server数据库截取字段中字符串,然后通过截取内容连接另一个表查询数据:
SELECT *,'显示列' = STUFF(( SELECT ',' + b.列名
FROM b
where PATINDEX('%,' + RTRIM(序号) + ',%',',' + a.列名 + ',')>0
ORDER BY PATINDEX('%,' + RTRIM(序号) + ',%',',' + a.列名 + ',')
--加上排序不变(如:2,1,3)
FOR XML PATH('')), 1, 1,'')
FROM a
数据库a
序号 | 值 |
---|---|
1 | 1,2 |
2 | 2,4 |
数据库b
序号 | 值 |
---|---|
1 | a |
2 | b |
3 | c |
4 | d |
查询结果
序号 | 值 |
---|---|
1 | a,b |
2 | b,d |