相关知识(二)

(以下为网络收集,回答正确性有待验证)

1、

怎樣count非零不重复的记录个数?

假设某列有以下数据:
5
0
3
5
6
0

我想数出这一列中不重复的非零值的个数,在这里就是3。怎么做?要直接在sql里面实现,不能用函数啊过程阿啥的。
注意,有时候0不出现的,所以不能用count(distinct number) - 1。
A:
select sum(decode(number, 0, 0, 1)) from ( select distinct number from t);
select COUNT(distinct(number)) from table where nvl(number,0)<>0
select COUNT(distinct(number)) from table where number<>0
decode函数:
例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。

  select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)

nul函数:
NVL(EXPR1,EXPR2)
若EXPR1是NULL,则返回EXPR2,否则返回EXPR1.
SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值