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

是否可以将SQL单列结果作为逗号分隔的字符串获取?[复制品]

  •  1
  • Dharma  · 技术社区  · 16 年前

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

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

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

    我需要将这个结果格式化为从SQL中用逗号分隔的字符串。

    4 回复  |  直到 16 年前
        1
  •  5
  •   Martin Smith    16 年前
    DECLARE @Concat varchar(max)
    
    select @Concat = CAST(recordid as varchar(10)) + coalesce(',' + @Concat , '')
     from device 
     where accountid in (1,2)
    
     SELECT @Concat
    
        2
  •  2
  •   Grzegorz Gierlik    16 年前

    您可以使用如下内容:

    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
    
        4
  •  0
  •   CMerat    16 年前

    您还可以编写自定义 CLR aggregate function 这可能会比使用字符串串联(特别是使用非常大的结果集)更优化。