ms sql 多行記錄合併成一個字符串或多字段(行轉列)

来源:互联网 发布:zoz软件下载吧 编辑:程序博客网 时间:2024/06/03 20:31

--將COPTN表中TN12字段的內容,可能多條記錄,合併成一個字符串
declare @tg varchar(250),@ct int

--計算需要合併記錄的數量並保存在@tc變量中,並初始化@tg
select @ct=count(a.TN012),@tg='' from  (
    select TN012 from COPTN
        where TN001+TN002 in (
            select TH045+TH046 from COPTH
            where TH001+TH002 in ('2313100626003')
        )
    ) a

while @ct>0 begin --@ct作為計數號,等於0時停止查詢
    select @tg=@tg+' / '+b.TN012 from ( --TN012內容之間用' / '分開
        select row_number() over(order by TN002)  RID,TN012 from COPTN 

                --row_number() over(order by TN002)  RID 將符合條件的記錄按TN002字段排序並編號,作為字段RID加到返回的結果中
            where TN001+TN002 in (
                select TH045+TH046 from COPTH
                where TH001+TH002 in ('2313100626003')
            )
        ) b
    where b.RID=@ct --每次只返回記一條錄號RID等於@ct的記錄
    select @ct=@ct-1 --完成一條查詢後@ct計數減1,
end

select @tg=substring(@tg,4,250) --去掉分隔符' / '
select @tg


原创粉丝点击