sql-server - SQL Server - 如何合并字符串并添加换行符?

标签 sql-server sql-server-2008 newline string-concatenation

我想将一组数据选择到单个字符串中,但我仍然希望每个项目都在自己的行上(然后我会将其放入 Crystal 报表中,这比使用大量子报表更快。)

所以,我有以下数据:

ID  Assessor
1   Black
1   Jones

我想查询它,并返回一个如下所示的字符串:

Black
Jones

如果我使用合并进行选择,我可以将其以逗号或分号分隔,但不能以换行分隔:

BEGIN
    declare @Assessors NVarChar(max)
    Declare @LineFeed varchar(10)
    DECLARE @Return varchar(10)
    Set @LineFeed = char(10)
    SET @Return = char(13)

    Select  @Assessors = COALESCE(@Assessors + ', ', '') + a.Assessor
    FROM  dbo.Assessment a
    Where   (@ID = a.ID)

Return @Assessors
END

其中,该函数将返回“Black,Jones”。但如果我将行更改为

Select  @Assessors = COALESCE(@Assessors + @Return + @LineFeed, '') + a.Assessor

它返回“Black Jones”——它不放入换行符或回车符,只是一个空格。

我想我不必使用 Coalesce,但我已经尝试过标准连接,但这也不会放入它。我现在已经将其放入函数中,但计划将其作为存储过程的一部分,这样速度更快。

最佳答案

CHAR(13)+CHAR(10) 将产生换行符,我在生产代码中一直这样做。

我运行了你的代码,它在我的系统上产生了换行符。在 SSMS 中,将 View 从“结果到网格”切换到“结果到文本”,您将看到换行符。

关于sql-server - SQL Server - 如何合并字符串并添加换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401795/

相关文章:

sql - 如何复制记录、修改记录并将其添加到同一个表中

xml - 根据属性值从 SQL Server 2008 中删除 xml 节点

sql - 从 SQL Server 2008 中的所有表中选择所有列

C++ 是否可以将 fstream 对象设置为在每次调用 << 时自动写入换行符?

sql-server - VS中的SSDT与SQL Server中的Integration Services之间的区别

c# - 设置单用户模式恢复备份

c# - 如何在 SQL Server 连接字符串中隐藏用户 ID/密码?

sql-server-2008 - 无法创建索引...不精确,计算且未持久化

textarea - 按下 ENTER 时禁用 Textarea 中的新行

python - 如何将其中包含换行符的字符串转换为 Python 中的列表?