如何在SELECT中编写CASE语句来执行以下操作:
我有一个名为Values
的专栏。此列可以包含值b
,c
或a
。如果它的值为b
,我希望SELECT返回big
;如果c
返回small
,如果a
返回large
答案 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