SQL案例陈述
问题描述:
如何在我的SELECT中编写CASE语句来执行以下操作:SQL案例陈述
我有一列名为Values
的列。此列可以具有值b
,c
或a
。如果它的值为b
,我希望SELECT返回big
;如果c
回报small
,如果a
回报large
答
Case [Values]
When 'a' Then 'large'
When 'b' Then 'big'
When 'c' Then 'small'
End
答
select
case values
when 'a' then 'large'
when 'b' then 'big'
when 'c' then 'small'
end as values_decoded
from table
答
另一种方法,可以给你同样的表现是这样的,它利用比较单一字符串:
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