我在sql server中有一個表,其中有一些值。例如,如下如何按不同條款排序
Transaction ProductNo
------------- -------------
2001-01-01 1
2001-01-01 3
2001-01-01 4
2001-01-02 2
2001-01-02 3
2001-01-02 5
我寫了一個查詢,如下
SELECT DISTINCT trans.[Transaction],
STUFF((SELECT ',' + trans1.ProductNo AS [text()] FROM Transactions trans1
WHERE trans.[Transaction]=trans1.[Transaction] ORDER BY trans1.[Transaction] FOR XML PATH('')), 1,1,'')[ProductNo]
FROM Transactions trans
輸出如下:
Transaction ProductNo
------------- -------------
2001-01-01 1,3,4
2001-01-02 2,3,5
,但我得到異常
Conversion failed when converting the varchar value ',' to data type int.
我假設'ProductNo'是'INT'?那麼,你怎麼想把它連接到一個'',''而不必先轉換它?使用'SELECT','+ CAST(trans1.ProductNo AS VARCHAR(5))'或類似的 – Lamak
謝謝@Lamak我完成了 –