我在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我完成了 –