您的位置:首页 > 数据库 > Oracle

数据库中CASE函数和Oracle的DECODE函数的用法

2015-11-01 21:03 441 查看
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数据库特有。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: