代码之家  ›  专栏  ›  技术社区  ›  Sekhat

从结果集创建长字符串

  •  5
  • Sekhat  · 技术社区  · 17 年前

    我在存储过程中的MS-SQL中有一个结果集,假设它有一个VARCHAR列,但有许多行。我想创建一个包含所有这些值的逗号分隔字符串,是否有一种简单的方法来实现这一点,或者我必须逐步完成每个结果并手动构建字符串?

    最好是在存储过程本身中这样做。

    2 回复  |  直到 17 年前
        1
  •  7
  •   Mitch Wheat    17 年前

    以下是一种方法(使用AdventureWorks2008 DB):

    DECLARE @name varchar(255)
    SET @name = NULL
    
    select @Name = COALESCE(@Name + ',','') + LastName from Person.Person
    Select @name
    

    下面是另一个(对于SQL 2005以后的版本):

    SELECT 
        LastName + ','
    FROM 
        Person.Person
    FOR XML PATH('') 
    

    在这两种情况下,都需要删除结尾的逗号“,”(可以使用STUFF()函数)