2010-07-30 167 views
1

如何在我的SELECT中編寫CASE語句來執行以下操作:SQL案例陳述

我有一列名爲Values的列。此列可以具有值bca。如果它的值爲b,我希望SELECT返回big;如果c回報small,如果a回報large

回答

7
Case [Values] 
When 'a' Then 'large' 
When 'b' Then 'big' 
When 'c' Then 'small' 
End 
4
select 
    case values 
     when 'a' then 'large' 
     when 'b' then 'big' 
     when 'c' then 'small' 
    end as values_decoded 
from table 
0

另一種方法,可以給你同樣的表現是這樣的,它利用比較單一字符串:

SELECT 
SUBSTRING('large', 1, DATALENGTH('large')*(1-abs(sign(ASCII([Values]) - ASCII('a'))))) + 
SUBSTRING('big', 1, DATALENGTH('big')*(1-abs(sign(ASCII([Values]) - ASCII('b'))))) + 
SUBSTRING('small', 1, DATALENGTH('small')*(1-abs(sign(ASCII([Values]) - ASCII('c'))))) 
FROM table