SQL之CASE WHEN表达式

SQL之 CASE WHEN表达式

case when可以使用在select、 where、 group by、 order by等句子中。

 

1.select句中的case when:

select
    user_name
    , user_address_kbn
    , case user_address_kbn 
        when 'A' then user_address 
        else null 
        end as 'user_address' 
from
    t_user 
order by
    user_address_kbn;
user_name    user_address_kbn    user_address
wang2            A               北京
wang4            A               广州
wang5            A               西安
wang1            B              « NULL »
wang3            B              « NULL »
            

2.where句中的case when:

select
    user_name
    , user_address_kbn
    , user_address
from
    t_user  
where
    case user_address_kbn 
        when 'B' then user_address = '西安'
        else user_address = '广州'
    end
order by
    user_address_kbn;

 

user_name    user_address_kbn    user_address
wang4            A                  广州
wang1            B                  西安
     

 

 3.group by句中的case when:

select
    user_name,
    case user_address_kbn
        when 'B' then '地区B'
        else '地区A'
    end as kbn
from t_user group by user_name,kbn
user_name    kbn
wang1        地区B
wang2        地区A
wang3        地区B
wang4        地区A
wang5        地区A

 

 4.order by句中的case when:

select
    user_name
    , user_address
    , user_address_kbn 
from
    t_user 
order by
    case user_address_kbn 
        when 'B' then user_address 
        else user_name 
    end
user_name    user_address    user_address_kbn
wang2        北京             A
wang4        广州             A
wang5        西安             A
wang3        上海             B
wang1        西安             B

 

posted @ 2020-05-20 09:55  BORS  阅读(369)  评论(0)    收藏  举报
bors