【问题标题】:Is it possible to get the SQL single column result as a comma separated string? [duplicate]是否可以将 SQL 单列结果作为逗号分隔的字符串获取? [复制]
【发布时间】:2011-03-07 06:41:04
【问题描述】:

可能重复:
How do I Create a Comma-Separated List using a SQL Query?

我正在开发一个 Web 应用程序。我需要单列选择的SQL查询,比如

select 
  recordid 
from 
  device 
where 
  accountid in (1,2)) 

我需要将此结果格式化为来自 SQL 的逗号分隔字符串。

【问题讨论】:

    标签: sql-server sql-server-2005 tsql


    【解决方案1】:
    DECLARE @Concat varchar(max)
    
    select @Concat = CAST(recordid as varchar(10)) + coalesce(',' + @Concat , '')
     from device 
     where accountid in (1,2)
    
     SELECT @Concat
    

    【讨论】:

    • 避免不必要逗号的聪明方法...
    • 是的,这解决了我的问题,谢谢
    【解决方案2】:

    你可以这样使用:

    DECLARE @result AS VARCHAR(MAX)
    
    SET @result = '' -- initialize with empty string to avoid NULL result
    
    SELECT
      @result = @result + ',' + CAST(recordid AS VARCHAR)
    FROM
      device
    WHERE
      accountid IN (1,2)
    
    
    SELECT @result AS recordids
    

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      您还可以编写一个自定义的CLR aggregate function,它最终可以比使用字符串连接更优化(尤其是对于非常大的结果集)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-16
        • 2022-11-22
        • 2020-08-09
        • 2021-10-09
        • 1970-01-01
        • 2020-12-20
        • 1970-01-01
        相关资源
        最近更新 更多