我有這樣如何把在INSERT語句@Tablevariable的選擇列表中一個逗號分隔的列表
TableX
Id ServiceID
1 10
1 20
1 30
2 15
2 25
2 35
和表變量@TableA
declare @TableA table
(
Id int primary key,
ServiceIdList varchar(max)
)
我需要@TableA表看起來像這樣
Id ServiceIdList
1 10,20,30
2 15,25,35
但我無法弄清楚插入語句的語法。如果可能,我想使用COALESCE,而不是STUFF。有人知道怎麼做嗎? 喜歡的東西
Insert @TableA
select distinct X.Id,
coalesce(@TableA.ServiceIdList + ',', '') + cast(TableX.ServiceId as varchar)
from TableX X
group by X.Id, X.ServiceId
非常感謝你提前
'我需要@TableA看起來像this' ......不,你不能;應該避免在表格中存儲CSV,原始標準化表格沒有任何問題。 –
@TimBiegeleisen,我認爲假設原始標準化表沒有任何錯誤,但沒有作者嘗試實現的某些上下文。鑑於所需的格式,我想這只是爲了顯示目的。並且由於請求將結果放入表變量中,這意味着它是暫時的。 – Adrian
@Adrian如果出於展示目的,那麼我收回我說的話。但將CSV放入表格是一個常見的初學者錯誤,我想我會留下評論這個效果。 –