SQL换行不起作用

时间:2017-07-31 11:06:55

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

我的代码如下: -

DECLARE @NewLineChar AS CHAR(23) = CHAR(13) + CHAR(10)
select 'abc'+@NewLineChar+'a'

我希望结果是: -

abc
a

单行

但它显示如下: -

enter image description here

我应该对上面的代码做出哪些更改?

EDIT1

enter image description here

EDIT2

enter image description here

6 个答案:

答案 0 :(得分:3)

尝试使用PRINT而非SELECT来显示结果。

DECLARE @NewLineChar AS VARCHAR(23) = CHAR(13) + CHAR(10)
PRINT 'abc'+@NewLineChar+'a'

(不要忘记转到消息标签查看结果)

SSMS网格显示不显示换行符或换行符。

答案 1 :(得分:2)

它会起作用。但是你必须在Result to text输出

中看到结果
select 'abc'+ CHAR(13) +'a'

使用结果到网格选项时,SSMS使用标准Windows网格控件来显示结果。此网格控件将每个单元格值视为纯文本,因此将忽略新行字符。

但是,如果使用结果文本选项或结果文件,则保留新行字符。

参考:https://connect.microsoft.com/SQLServer/feedback/details/381955/sql-server-management-studio-should-show-new-lines-in-records

Result to text启用ctrl + t,然后运行 Text output

答案 2 :(得分:1)

DECLARE @NewLineChar AS VARCHAR(2)

SET @NewLineChar = CHAR(13) + CHAR(10)

PRINT 'abc'+@NewLineChar+'a'

答案 3 :(得分:1)

使用以下查询换行:

  DECLARE @strPrint VARCHAR(100);
  SET @strPrint = 'abc';
  SET @strPrint = @strPrint + CHAR(13);
  SET @strPrint = @strPrint + 'a';
  SELECT  @strPrint;

  Edit : 

  Use PRINT for see new line   

  PRINT @strPrint; 

答案 4 :(得分:1)

你必须用CHAR(13)连接字符串这应该有效:

DECLARE @NewLineChar NVARCHAR(200);
SET @NewLineChar = 'abc' + CHAR(13) + 'a';
PRINT @NewLineChar;

<强>输出:

abc
a

答案 5 :(得分:0)

要测试您的输出,如果使用SSMS,请确保选中了“在复制或保存时保留CR / LF”选项,否则所有粘贴的结果都会使换行无效。您可以在设置,查询结果,SQL Server,结果到网格中找到它。