森森快跑

走得累,走得苦,那是因为在走上坡路。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2015-11-01 21:03  森森快跑  阅读(313)  评论(0编辑  收藏  举报

  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数据库特有。