SQL逗号分隔值

时间:2014-11-05 21:59:30

标签: sql sql-server sql-server-2014

我在另一个大查询中使用此查询。 我需要这个查询来返回comman分隔值(所以John,David,Brian,Jake)并且不使用任何中间变量。

我正在使用SQL Server 2014。

你能提供必要的SQL吗?

SELECT
    --@listStr = (COALESCE(@listStr + ',', '') + ShortName)
X.ShortName
FROM
    (
    SELECT 'John' AS ShortName UNION ALL
    SELECT 'David' AS ShortName UNION ALL
    SELECT 'Brian' AS ShortName UNION ALL
    SELECT 'Jake' AS ShortName 
    ) X

1 个答案:

答案 0 :(得分:0)

你可以使用STUFF函数,FOR XML PATH可以用逗号作为分隔符连接值,STUFF删除前导逗号。

SELECT STUFF((SELECT  ',' + ShortName
    FROM
    (
    SELECT 'John' AS ShortName UNION ALL
    SELECT 'David' AS ShortName UNION ALL
    SELECT 'Brian' AS ShortName UNION ALL
    SELECT 'Jake' AS ShortName 
    ) X
    FOR XML PATH('')),1,1,'' )