连接字符串

时间:2010-10-26 00:51:31

标签: sql sql-server tsql string-concatenation

SQL服务器中是否有一种方法可以按如下方式编写输出:

select events
  from mytable

原始输出

events
--------
123456
894531
985233
829292
920202
392939
299223

期望的输出

'123456', '894531','985233','829292','920202','392939','299223'

选择''+ CustomerID +',' 来自dbo.Customers 顾客ID ALFKI, ANATR, ANTON, AROUT, BERGS,

希望看到结果为 顾客ID 'ALFKI', 'ANATR', “安东, 'AROUT', 'BERGS', 等......

2 个答案:

答案 0 :(得分:5)

SELECT
  STUFF(
    (SELECT
      ', ' + events
     FROM dbo.mytable
     FOR XML PATH('')
    ), 1, 1, '') As concatenated_string

如果您希望用单引号括起来的值,请编辑上面的填充。

答案 1 :(得分:3)

Concatenating Row Values in Transact-SQL讨论了你拥有的各种选项,如递归CTE,blackbox XML(如Mitch'解决方案),CLR,游标,递归标量UDF等,以及一些不可靠但快速的方法(SELECT with variable串联)。