postgre中的判断条件
转载:https://blog.csdn.net/csdn_life18/article/details/103105911
CASE
CASE类似其他语言中的if/else等,当符合不同条件时则进行不同的运算。
示例1.查询tbl_test表,如果sex等于'm'则显示'男',,如果是'f'则显示'女'
test=# select name,case when sex = 'm' then '男' else '女' end as sex from tbl_test; name | sex ------+----- 张三 | 男 李四 | 男 王五 | 女 (3 rows)
示例2.查询tbl_test表中男女的人数
方法1.分别查询
test=# select count(*) as 女 from tbl_test where sex = 'f'; 女 ---- 1 (1 row) test=# select count(*) as 男 from tbl_test where sex = 'm'; 男 ---- 2 (1 row)
方法2.使用case一次查询
test=# select sum(case when sex = 'm' then 1 else 0 end) as 男,sum(case when sex='f' then 1 else 0 end)as 女 from tbl_test; 男 | 女 ----+---- 2 | 1 (1 row)