我的代码如下: -
DECLARE @NewLineChar AS CHAR(23) = CHAR(13) + CHAR(10)
select 'abc'+@NewLineChar+'a'
我希望结果是: -
abc
a
单行
但它显示如下: -
我应该对上面的代码做出哪些更改?
EDIT1
EDIT2
答案 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网格控件来显示结果。此网格控件将每个单元格值视为纯文本,因此将忽略新行字符。
但是,如果使用结果文本选项或结果文件,则保留新行字符。
答案 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,结果到网格中找到它。