2015-05-15 20 views
0

我有一個結構類似這樣的SYBASE查詢:Sybase CASE表達式的結果是否有默認的列名?

SELECT 
    case 
     when isnull(a,'') <> '' then a 
     else convert(varchar(20), b) 
    end 
FROM table_name 
WHERE b=123 

它曾經在一個名爲列返回「案例」的結果「換算」。它現在在一個空字符串名稱爲''的列中返回'case'的結果。

這怎麼可能?能否有一些數據庫配置默認「沒有名字的情況下」的結果?

(我已通過添加「作爲計算」「結束」後固定在破碎的查詢,但現在我想知道它是如何用於返回爲「計算」之前,我添加了修復?)

回答

0

這是你想要的嗎?

SELECT (case when isnull(a, '') <> '' then a 
      else convert(varchar(20), b) 
     end) as converted 
-------------^ 
FROM table_name 
WHERE b = 123; 

順便說一句,你可以寫select更簡潔爲:

SELECT coalesce(nullif(a, ''), b) as converted 
+0

感謝您的答覆,但是這不是我要找的。我只是問是否可能有一些數據庫配置默認沒有名字的'案例'的結果。 – JayB

+0

@JayB。 。 。我從來沒有聽說過任何數據庫中有這樣的配置參數。 –

相關問題