我在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.
答案 0 :(得分:2)
',' + trans1.ProductNo
- 这是问题所在。 SQL Server认为您正在尝试向数字添加逗号。尝试将trans1.ProductNo
更改为CAST(trans1.ProductNo AS VARCHAR)
。
答案 1 :(得分:1)