--將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