在大小写表达式结果 SQL 中插入换行符



我有以下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,同时保持换行符。

最新更新