将一列的值连接到单个文本

concatenate values of one column to single text

我的专栏是这样的:

col1

玛丽

杰克

约翰

我需要这样的东西: 玛丽、杰克、约翰

我使用 "For XML PATH" 做到了,但问题是该段在 SQL 服务器视图中不起作用, 还有其他方法可以连接一列吗?

尝试使用 SQL COALESCE 表达式将您的列值转换为逗号分隔的字符串。

这是您需要做的。

DECLARE @test TABLE (
  SampleCol varchar(50)
)

INSERT INTO @Test
  VALUES ('Test')
INSERT INTO @Test
  VALUES ('Test 1')
INSERT INTO @Test
  VALUES ('Test 2')
INSERT INTO @Test
  VALUES ('Test 3')
INSERT INTO @Test
  VALUES ('Test 4')

DECLARE @aa varchar(200)
SET @aa = ''

SELECT
  @aa =
  COALESCE(CASE
    WHEN @aa = '' THEN SampleCol
    ELSE @aa + ',' + SampleCol
  END
  , '')
FROM @test

SELECT
  @aa

这里是完整的SQLFIDDLE

试试这个:

DECLARE @tbl TABLE(col1 VARCHAR(10));
INSERT INTO @tbl VALUES('Mary'),('Jack'),('John');
SELECT
STUFF
(
    (
        SELECT ', ' + col1
        FROM @tbl
        FOR XML PATH('')
    )
,1,2,'')