在SQL语句中,功能介绍如下:
Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和第i 个compare项匹配,就返回第i 个对应的value 。如果base_exp与任何的compare值都不匹配,则返回default。每个compare值顺次求值,如果发现一个匹配,则剩下的compare值(如果还有的话)就都不再求值。一个为NULL的base_exp被认为和NULL compare值等价。如果需要的话,每一个compare值都被转换成和第一个compare 值相同的数据类型,这个数据类型也是返回值的类型。
比如我要查询某班男生和女生的数量分别是多少?
通常我们这么写:
select count(*) from 表where 性别 = 男; select count(*)from 表where 性别 = 女;
要想显示到一起还要union一下,太麻烦了
用decode呢,只需要一句话
selectsum(decode(性别,男,1,0)),sum(decode(性别,女,1,0))from 表