3 回答
TA贡献1812条经验 获得超5个赞
decode(性别,男,1,0)其实就是做一个判断,当性别为男的时候,把男替换成1,否则就把性别字段中的内容替换成0。
例: 表A
字段: 性别
男
女
男
N
女
Y
执行完楼主所写的SQL后,就变成
例: 表A
字段: 性别
1
1
1
0
1
0
性别字段中不为男女的都变成了0。
统计数量的换直接用聚合函数select count(decode(性别,男,1,0))就可以做到.
TA贡献1811条经验 获得超6个赞
DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值.
其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果
value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result 是一组成序偶的结果值
default_result 未能与任何一序偶匹配成功时,函数返回的默认值
下面的例子说明了,如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。
SELECT checkup_type,
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)
FROM checkup;
TA贡献1817条经验 获得超6个赞
应该是
select sum(decode(性别,'男',1,0)),sum(decode(性别,'女',1,0))
from 表
这个查询的话就是查询所有男生和女生的数量
decode(性别,'男',1,0) 如果性别为男,则取1,否则取0
sum(decode(性别,男,1,0)) 的话就是所有1的数目,就是男生的数量了
- 3 回答
- 0 关注
- 181 浏览
添加回答
举报