我有以下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
语句需要有表示CASE
语句结尾的END
关键字。
至于您的问题,您可以在文本中添加回车符和换行符,这将为您提供一个新行。在 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,同时保持换行符。