在SQL Server的每个连接行上附加一个新行

时间:2017-12-05 06:07:50

标签: sql sql-server

以下sql查询正确连接表的每一行以获取给定的外键PlanId。但是,CHAR(10) + CHAR(13)似乎被忽略了。

SELECT PlanID,
   STUFF(
            (
                SELECT CONVERT(NVARCHAR, CONVERT(DATE, CreateTimestamp)) + ' ' + CreateUserID + ': ' + Notes
                       + CHAR(13) + CHAR(10)
                FROM PlanNotes
                WHERE PlanID = OuterNotes.PlanId
                ORDER BY UpdateTimestamp DESC
                FOR XML PATH(''), TYPE
            ).value('.', 'nvarchar(max)'),
            1,
            0,
            ''
        ) AS Notes
FROM PlanNotes OuterNotes;

结果输出如下:

  

2017-12-04 nickh:Nick's Test Notes v2 2017-11-27 bobj:原始日期是2016年6月1日。

我想要的时候:

  

2017-12-04 nickh:尼克的测试笔记v2
  2017-11-27 bobj:原始日期是

1 个答案:

答案 0 :(得分:1)

我的猜测是,CHAR(10)CHAR(13)字符实际上确实将其输入到您的输出中,但无论出于何种原因,SSMS或您的特定工具都没有像您期望的那样呈现它们。此处的解决方法可能是将查询输出到文本文件,然后在真正的文本编辑器(例如Notepad ++)中打开。