2010-07-30 5 views
1

Comment puis-je écrire une instruction CASE dans mon SELECT pour effectuer les opérations suivantes:Case SQL statment

J'ai une colonne appelée Values. Cette colonne peut avoir la valeur b, c ou a. S'il a la valeur b, je veux que le SELECT renvoient big; si c retour small, et si a retour large

Répondre

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

Une autre approche qui peut vous donner des performances similaires est-ce, qui profite de la comparaison des chaînes de caractères simples:

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