mysql数据库中 Case-When语句的使用
个人认为这个功能可以减少后台逻辑处理,并且由于在数据库内部完成,保证了数据的准确性(例如:数值与数据格式的合法性)。另外,如果条件包含结果集全集那么可以不加 else 关键字,否则需要指定 else 对应的值,如果不指定,条件之外的结果集将变成 NULL
按条件更改查询值
如果表中 field1、field2字段条件相互冲突,那么将会以field1条件为主。
1 2 3 4 5 6
| select case when field1 < '某值1' then '小' when field2 > '某值2' then '大' else '一般' END as "field" from table;
|
按特定值更改查询值
1 2 3 4 5 6
| select case field when '某值1' then '值1' when '某值2' then '值2' else '值3' END as "字段别名" from table;
|
复合查询
1 2 3 4 5 6
| select case when field1 > 15 and field1 < 20 then '值1' when field1 > 20 and field2 > 10 then '值2' else '值3' END as "字段别名" from table;
|