您的位置:首页 > 数据库

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

2010-06-26 16:11 176 查看
--將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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: