今天一位朋友问这样个问题:
Case when语句:
SELECT sum (CASE WHEN T > 24 THEN 1 ELSE 0 END), sum (CASE WHEN T<=24 THEN 1 ELSE 0 END) FROM gzb ;如果用decode如何实现如上效果
Case when语句:
SELECT sum (CASE WHEN T > 24 THEN 1 ELSE 0 END), sum (CASE WHEN T<=24 THEN 1 ELSE 0 END) FROM gzb ;如果用decode如何实现如上效果
-- 除非在你的业务中,能够(且乐意)将某字段范围值具体化,
-- 或则在case ... when 语句中存在区间条件时,decode()函数是无能为力的!
select sum(deocde(t,1,0,
2,0,
3,0,
...,...
24,0,
1),
sum(deocde(t,1,1,
2,1,
3,1,
...,...
24,1,
0)
FROM gzb;
2.请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德。
3.转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。
select sum(decode(sign(T - 24),-1,1,0)) + sum(decode(sign(T - 24),0,1,0)),sum(decode(sign(T - 24),1,1,0))
from gzb
或者
select SUM(DECODE((T-24) - ABS(T-24),0,1,0)) - SUM(DECODE(T,24,1,0)),SUM(DECODE((T-24) - ABS(T-24),0,0,1))+SUM(DECODE(T,24,1,0))
from gzb