SQL案例陈述

时间:2010-07-30 19:08:25

标签: sql

如何在SELECT中编写CASE语句来执行以下操作:

我有一个名为Values的专栏。此列可以包含值bca。如果它的值为b,我希望SELECT返回big;如果c返回small,如果a返回large

3 个答案:

答案 0 :(得分:7)

Case [Values] 
When 'a' Then 'large'
When 'b' Then 'big'
When 'c' Then 'small'
End

答案 1 :(得分:4)

select 
    case values
        when 'a' then 'large'
        when 'b' then 'big'
        when 'c' then 'small'
    end as values_decoded
from table

答案 2 :(得分: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