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
作者: BORS