如何使用char(13)+ char(10)实现换行(\ n)和回车(\ r)

时间:2015-10-07 04:57:50

标签: sql sql-server sql-server-2008-r2

  DECLARE @name1 VARCHAR(20),
    @name2 VARCHAR(20)

    SET @name1 = 'Hello'
    SET @name2 ='World'
    SELECT @name1 + CHAR(13)+CHAR(10) + @name2

Reslut

Hello  World

但我想要像这样的结果

Hello  
World

char(13)+ Char(10)不适用于换行(\ n)和回车(\ r)

3 个答案:

答案 0 :(得分:0)

您需要切换到Result to Text以查看新行中的结果,例如,按 CTRL + T 然后执行查询。

<强>输出:

------------------------------------------
Hello
World

(1 row(s) affected)

您可以找到this good reference,看看为什么我说这是不可能的:

  

使用结果到网格选项时,我们使用标准Windows   网格控件显示结果。此网格控件处理每个   单元格值作为纯文本,因此新行字符是   忽略。从结果部分执行时保存为函数   只是从网格中获取内容,因此新行是   在从网格创建的新文件中找不到。但是,如果你使用   结果到文本选项或结果以提交新行   字符被保留。 SSMS并不是真正的报告   工具,所以我们无法在结果格式上花费太多时间,   特别是如果存在如上所述的一些解决方法。

答案 1 :(得分:0)

表格结果不会显示换行符。打印如下。

   DECLARE @NewLineChar AS CHAR(2) = CHAR(13) + CHAR(10)
PRINT ('SELECT FirstLine AS FL ' +@NewLineChar + 'SELECT SecondLine AS SL' )

答案 2 :(得分:0)

DECLARE @name1 VARCHAR(20),
@name2 VARCHAR(20)

SET @name1 = 'Hello'
SET @name2 ='World'
SELECT @name1 
Union
select  @name2

试试这个...