【问题标题】:Creating a long string from a result set从结果集中创建一个长字符串
【发布时间】:2008-11-17 13:40:06
【问题描述】:

我在存储过程中的 MS-SQL 中有一个结果集,可以说它有一个 VARCHAR 列,但有很多行。我想创建一个包含所有这些值的逗号分隔字符串,有没有一种简单的方法可以做到这一点,还是我必须逐步检查每个结果并手动构建字符串?

我最好在存储过程本身中执行此操作。

【问题讨论】:

    标签: sql tsql string


    【解决方案1】:

    这是一种方法(使用 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() 函数)

    【讨论】:

    • 我自己发现的方式 :D
    【解决方案2】:

    这个问题已经被问过好几次了:

    How to return multiple values in one column (T-SQL)?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多