SqlServer 一对多,表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中.行转列,列转行

附带MySQL用法链接:

https://www.cnblogs.com/w-yu-chen/p/11428090.html

进入正题:

一、SQLserver用法,这里只提供解决办法,原理请翻阅文档

特别注意:CHARINDEX 函数前面不要加空格,SqlServer2012已修复,2008存在问题

SELECT
    '修改' AS edit,
    '删除' AS del,
    t.stzk,
    stuff((select ','+dictname 
    from sys_dict_item d 
    where groupid='sfdjb_stzk' and CHARINDEX(','+CONVERT(VARCHAR,d.dictid),','+t.stzk)>0 for xml path('')),1,1,'') as stzkname

FROM
sfdjb_wgy t 
WHERE t.zt_dm = '1' AND t.tjzt = '1'
AND t.orgid like  '37.03.04%'
ORDER BY
    t.lrsj DESC,
    t.stzk DESC

二、效果:

猜你喜欢

转载自www.cnblogs.com/w-yu-chen/p/12314960.html
今日推荐