資料如下
http://sqlfiddle.com/#!18/690578/1
欄位有MemberID、MemberAccount、IsPrimaryAccount
若我想撈出一個字串回傳結果 = 'Test123(主),Test456,Test789'
p.s IsPrimaryAccount = true 的為主帳號
請問該如何處理? 謝謝
select MemberAccount+case when IsPrimaryAccount=1 then '(主)' else '' end+','
from a
for xml path ('')
select * from A WHERE IsPrimaryAccount = 1
true為1,false為0
你在fiddle上設定的平台是2017,所以我以2017的答案回答
DECLARE @Result varchar(max)
SELECT
@Result = STUFF( (SELECT ',' + MemberAccount
FROM a
WHERE IsPrimaryAccount=1
FOR XML PATH('')),
1, 1, '')
select @Result
感謝japhenchen ,今天學到了STUFF的用法。
之前都是將','留在最後,再用SUBSTR。
今天這個方法看來更好用,直接把第1個字元換掉。
我承認我看錯題意,補一下正確答案
DECLARE @Result varchar(max)
SELECT
@Result = STUFF( (SELECT ',' + MemberAccount + case IsPrimaryAccount when 1 then '(主)' else '' end
FROM a
FOR XML PATH('')),
1, 1, '')
select @Result
感謝! 多學到了一個用法