2017-08-24 53 views
3

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

謝謝!

回答

3

如果您使用的是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

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自始至終保持換行符。