Oracle Case语句
2009-08-06 08:49
253 查看
今天看了一下Case语句,蛮有用的,比decode强大.
----基金净值比例
SELECT fnwd.CALCULATE_DATE,COUNT (CASE
WHEN fnwd.NET_WORTH < 1
THEN 1
END) 小于1,
COUNT (CASE
WHEN fnwd.NET_WORTH < 2 AND fnwd.NET_WORTH >= 1
THEN 1
END
) 小于2大于等于1,
COUNT (CASE
WHEN fnwd.NET_WORTH < 3 AND fnwd.NET_WORTH >= 2
THEN 1
END
) 小于3大于等于2,
COUNT (CASE
WHEN fnwd.NET_WORTH < 4 AND fnwd.NET_WORTH >= 3
THEN 1
END
) 小于4大于等于3,
COUNT (CASE
WHEN fnwd.NET_WORTH < 5 AND fnwd.NET_WORTH >= 4
THEN 1
END
) 小于5大于等于4,
COUNT (CASE
WHEN fnwd.NET_WORTH >= 5
THEN 1
END) 大于等于5
FROM T_FUND_NET_WORTH_DAILY fnwd
where fnwd.CALCULATE_DATE between TO_DATE ('2007-05-31', 'YYYY-MM-DD') and TO_DATE ('2007-07-03', 'YYYY-MM-DD')
group by fnwd.CALCULATE_DATE
case语句还可以嵌套
select (case when qty_less6months < 0 and qty_6to12months < 0 then
(case when season_code in ('0', '1', '2', '3', '4') then 'value is negative'
else 'No stock'
end)
when qty_1to2years < 0 and qty_2to3years < 0 then
(case when season_code in ('A', 'B', 'C', 'D', 'E') then 'value is negative'
else 'No stock'
end)
else 'Stock Available'
end) stock_check
from jnc_lots_ageing_mexx_asof
where rownum < 20
and qty_less6months < 0 and qty_6to12months < 0
转自:http://keke-wanwei.javaeye.com/blog/99173
----基金净值比例
SELECT fnwd.CALCULATE_DATE,COUNT (CASE
WHEN fnwd.NET_WORTH < 1
THEN 1
END) 小于1,
COUNT (CASE
WHEN fnwd.NET_WORTH < 2 AND fnwd.NET_WORTH >= 1
THEN 1
END
) 小于2大于等于1,
COUNT (CASE
WHEN fnwd.NET_WORTH < 3 AND fnwd.NET_WORTH >= 2
THEN 1
END
) 小于3大于等于2,
COUNT (CASE
WHEN fnwd.NET_WORTH < 4 AND fnwd.NET_WORTH >= 3
THEN 1
END
) 小于4大于等于3,
COUNT (CASE
WHEN fnwd.NET_WORTH < 5 AND fnwd.NET_WORTH >= 4
THEN 1
END
) 小于5大于等于4,
COUNT (CASE
WHEN fnwd.NET_WORTH >= 5
THEN 1
END) 大于等于5
FROM T_FUND_NET_WORTH_DAILY fnwd
where fnwd.CALCULATE_DATE between TO_DATE ('2007-05-31', 'YYYY-MM-DD') and TO_DATE ('2007-07-03', 'YYYY-MM-DD')
group by fnwd.CALCULATE_DATE
case语句还可以嵌套
select (case when qty_less6months < 0 and qty_6to12months < 0 then
(case when season_code in ('0', '1', '2', '3', '4') then 'value is negative'
else 'No stock'
end)
when qty_1to2years < 0 and qty_2to3years < 0 then
(case when season_code in ('A', 'B', 'C', 'D', 'E') then 'value is negative'
else 'No stock'
end)
else 'Stock Available'
end) stock_check
from jnc_lots_ageing_mexx_asof
where rownum < 20
and qty_less6months < 0 and qty_6to12months < 0
转自:http://keke-wanwei.javaeye.com/blog/99173
相关文章推荐
- oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用
- oracle 性能优化操作十二: 用Case语句合并多重扫描
- oracle:case 语句使用(用于select子句的case语句中可以使用in这个函数)
- Oracle中case语句
- Oracle的sql语句中case关键字的用法 & 单双引号的使用
- ORACLE里面如何写CASE语句
- oracle case when then end 语句
- Oracle IF & CASE语句
- oracle中case语句
- Oracle Decode()函数和CASE语句的比较
- Oracle-Decode()函数和CASE语句的不同
- oracle如何根据一个字段的结果判断另外一个字段?(CASE WHEN THEN ELSE END语句)
- oracle case when 语句
- ORACLE case when查询语句用法
- oracle中的case语句
- Oracle中plsqlCase语句
- 关于oracle中查询语句 decode和 case when 的用法
- Oracle CASE语句
- oracle pl/sql之sql中的case语句
- SQL语句中的case when语法以及Oracle中的类似方法