在Case语句结果SQL中插入换行符

时间:2017-08-24 19:00:26

标签: sql sql-server case sql-server-2016

我有以下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

谢谢!

2 个答案:

答案 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,同时保持换行符。