SQL select语句字符串连接

时间:2009-12-05 11:05:34

标签: sql sql-server-2008 group-by

可以使用select语句完成这样的事情:

SELECT col1, concat(col2 + ' ') FROM ....
       GROUP BY col1

我知道我可以对整数使用count(col2)或sum(col2)但是如果类型是nvarchar或nchar,是否有连接函数?

3 个答案:

答案 0 :(得分:4)

在SQL Server中,如果要跨行连接,则没有内置函数来执行此操作。

我个人喜欢using XML PATH,因为它似乎表现不错,但这只适用于SQL Server 2005以后

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

答案 1 :(得分:1)

+ operator用于在T-SQL中连接字符串。

编辑:

如果您希望聚合多行this might help上的字符串。

答案 2 :(得分:0)

使用Sql Server没有内置的聚合连接foncton,我知道MySql有一个叫做group_concat。

Sql Server,您要么必须编写自己的缩放器函数,要么使用CLR函数来实现此目的。

或者您可以使用游标为您执行此操作,使用表var返回结果。如果你愿意,我可以提供一个例子。