将列值展平为字符串

时间:2013-08-08 16:24:32

标签: sql-server

虽然我偶尔使用Sql Server进行yonks,但直到前几天我偶然发现你可以做这样的事情我才意识到:

declare @result varchar(8000)

select @result = ''

select @result = @result + acolumn+ ' '

from atable

我在Transact-Sql文档中读到的任何内容都让我想到使用这样的结构而不是像一个游标。我的问题:这个构造是否受其他版本的Sql支持,还是特定于Sql Server?

2 个答案:

答案 0 :(得分:3)

这是特定于Sql服务器的。您提到的语句是T-SQL语句,它们仅适用于Sql Server。

答案 1 :(得分:3)

不要这样做,因为depends on the physical implementation and internal access paths。请阅读Concatenating Row Values in Transact-SQL上的文章,了解一些正确的方法,例如FOR XML PATH('')方法。