我有以下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
谢谢!
答案 0 :(得分:3)
如果您正在使用SSMS:您不会在结果网格中看到差异,但如果您将结果设置为文本(快捷键:Ctrl + T),您将会看到。
<div class="parent">
<div id="a">
<div id="b">
<div id="c">
</div>
</div>
</div>
</div>
或
SELECT CASE WHEN item = '662627-4' THEN 'KLX Licensed & '+char(10)+'BOM CONTAINS KLX LICENSED PART(S)'
ELSE NULL end
rextester演示:http://rextester.com/YWD92075
答案 1 :(得分:0)
好问题。
在我们回答它之前的注释:您的代码示例不会执行,只是因为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,同时保持换行符。