插入断行
问题描述:
我有以下Case
声明:插入断行
SELECT
CASE
WHEN item = '662627-4'
THEN 'KLX Licensed & BOM CONTAINS KLX LICENSED PART(S)'
ELSE NULL
结果如下:
KLX Licensed & BOM CONTAINS KLX LICENSED PART(S)
我想通过它来显示这样两行:
KLX Licensed &
BOM CONTAINS KLX LICENSED PART(S)`
这可能吗?是否有一个字符在case语句中插入回车符?
我正在使用SQL Server 2016
谢谢!
答
如果您使用的是SSMS:在结果网格中看不到差异,但如果将结果设置为文本(快捷键:Ctrl + T),则会出现差异。
SELECT CASE WHEN item = '662627-4' THEN 'KLX Licensed & '+char(10)+'BOM CONTAINS KLX LICENSED PART(S)'
ELSE NULL end
或
SELECT CASE WHEN item = '662627-4' THEN 'KLX Licensed &
BOM CONTAINS KLX LICENSED PART(S)'
ELSE NULL end
rextester演示:http://rextester.com/YWD92075
答
好问题。
我们回答之前的评论:您的代码示例不会执行,只是因为CASE
语句需要END
关键字表示CASE
语句的结尾。
至于你的问题,你可以添加一个回车和换行到你的文本,这会给你一个新的行。你不会在SSMS的数据模式下看到这一点(当你以表格形式看到结果时)。数据将与换行符一起存储,并在导出或以文本形式查看时显示。我个人发现,单独换行或回车并不总是能做到这一点(取决于您输出的位置),尽管每次都有组合。
尝试以下操作:
SELECT
CASE
WHEN item = '662627-4'
THEN 'KLX Licensed &'+CHAR(10)+CHAR(13)+' BOM CONTAINS KLX LICENSED PART(S)'
ELSE NULL
我能导出到Excel,CSV,甚至导入SSAS自始至终保持换行符。