1、CASE WHEN函数
Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
Case函数只返回第一个符合条件的值,后面的将会全部忽略。
例如:表数据有3列(country国家,sex性别,population人口)。
统计每个国家的男女人口数。
SELECT country,
SUM( CASE WHEN sex = '1' THEN population ELSE 0 END), --男性人口
SUM( CASE WHEN sex = '2' THEN population ELSE 0 END) --女性人口
FROM Table_A
GROUP BY country;
2、DECODE函数
DECODE(value, if1, then1, if2, then2, if3, then3,...ifn, thenn, else)
表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。
亦即:decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)。
decode函数属oracle数据库特有。