SQL SERVER 如何把1列多行数据 合并成一列显示,具体格式如下:

查询表:id title1 title12 title23 title3要求现实:title1,title2,title3
2024-11-02 18:19:37
推荐回答(3个)
回答1:

示例

修改前:1列多行数据


修改后:合并成一列


示例语句

select
类别,
    名称 = (
        stuff(
            (select ',' + 名称 from Table_A where 类别 = A.类别 for xml path('')),
            1,
            1,
            ''
        )
    )
from Table_A as A group by 类别


把得到的内容以XML的形式显示

for xml path('') 


把拼接的内容的第一个“,”去掉

stuff((select ',' + ep_name from ep_detail where ep_classes = a.ep_classes for xml path('')), 1, 1, '')

回答2:

SQL SERVER 如何把1列多行数据 合并成一列显示:

多行转一列,通过(,)将数据和并成一列。

SQL SERVER 如何把1列多行数据 合并成一列显示的延伸:

unpivot()函数用法:unpivot( x for  x in ()),用法和privot类似。

例如:

转之前:SELECT code,name,type

FROM cd_data_dict 

转之后:SELECT code,name,typeFROM cd_data_dict unpivot (name for code in (code,name))

回答3:

select stuff((select ','+title from tb for xml path('')),1,1,'')