2014-01-23 50 views
3

我有一組一對一的映射A - > apple,B->香蕉等。 我的表有一列值爲A,B,C ..在SQL中使用'CASE'選擇

現在,我嘗試使用select語句,這將給我的直接結果

SELECT 
    CASE 
    WHEN FRUIT = 'A' THEN FRUIT ='APPLE' 
    ELSE WHEN FRUIT ='B' THEN FRUIT ='BANANA'  
FROM FRUIT_TABLE; 

但我沒有得到正確的結果,請大家幫我..

+1

你不缺的情況下 –

+0

看的結束的結束和一個別名在此http://stackoverflow.com/questions/14189216/case-in-select-statement – Zzyrk

+0

我很驚訝即使運行。 –

回答

29

這只是case語句的語法,看起來像這樣。

SELECT 
    CASE 
    WHEN FRUIT = 'A' THEN 'APPLE' 
    WHEN FRUIT = 'B' THEN 'BANANA'  
    END AS FRUIT 
FROM FRUIT_TABLE; 

作爲提醒記住,該值不會成爲列內容。 (如果你想把它分配給一個變量,你會把它放在CASE語句之前)。

+5

這也可以寫'CASE FRUIT'A'...' – Taryn

+0

感謝它的工作! – Vamshi

4

更改爲:

SELECT 
    CASE 
    WHEN FRUIT = 'A' THEN 'APPLE' 
    WHEN FRUIT = 'B' THEN 'BANANA'  
    END 
FROM FRUIT_TABLE; 
+0

這不會有列名稱。 – Hogan

+1

沒有要求 – everton

1

哪個平臺?

SELECT 
    CASE 
    WHEN FRUIT = 'A' THEN 'APPLE' 
    ELSE FRUIT ='B' THEN 'BANANA' 
    END AS FRUIT  
FROM FRUIT_TABLE; 
2

試試這個。

SELECT 
    CASE 
    WHEN FRUIT = 'A' THEN 'APPLE' 
    WHEN FRUIT = 'B' THEN 'BANANA' 
    ELSE 'UNKNOWN FRUIT' 
    END AS FRUIT 
FROM FRUIT_TABLE; 
+0

這會在'ELSE WHEN'給出語法錯誤 – Hogan

+0

@Hogan是的,沒錯。答案固定。 –