SQL server 一对多,表字段中存了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

二、效果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM