2016-06-26 48 views
0

我想使用CASE在單元格是某個整數時返回一個文本字符串,否則返回原始整數值。使用CASE查找某個整數並返回一個字符串

SELECT 
    CASE WHEN table.column_name = 10 THEN 'yes' 
     ELSE table.column_name 
    END 
FROM table 

我得到一個錯誤,'是'是無效的輸入語法,因爲它是一個字符串,並且column_name存儲爲整數。

+2

你不能這樣做,由於其結果必然是一個特定類型的。在你的情況下,它是一個字符串或數字。選一個。 – zerkms

+0

您的問題的問題部分缺失。你想知道什麼? – melpomene

回答

1

您的CASE返回一個數字或字符串,但該列必須是精確類型。在下面的例子中,我將輸入列轉換爲一個字符串。

SELECT 
    CASE WHEN table.column_name = 10 THEN 'yes' 
     ELSE to_char(table.column_name, '999') 
    END AS value 
FROM table 

結果列將是一個字符串,無論是「是」或「12」,「13」,......

+1

謝謝!我認爲輸入(10)和結果('是')必須是相同的類型,並且完全不考慮ELSE子句。 – smithmg

相關問題