Oracle的Select Case用法

#保留两位小数:
round((ny.AMOUNT-oy.AMOUNT)/ny.AMOUNT,2)

#之所以做IS NULL 判断是因为ORACLE算术运算符,有一个为NULL,则为NULL
oy.AMOUNT IS NULL

#取TXN_DATE前6个字符
"SUBSTR"(f.TXN_DATE,1,6)

######################
实例:
SELECT(
CASE 
WHEN oy.AMOUNT IS NULL THEN
    (ny.AMOUNT-0)/ny.AMOUNT
WHEN ny.AMOUNT IS NULL THEN
    (0-oy.AMOUNT)/oy.AMOUNT
ELSE
   round((ny.AMOUNT-oy.AMOUNT)/ny.AMOUNT,2)
END) AS samepercent,ny.BLEVEL FROM
(SELECT "SUM"(f.AMOUNT) AS AMOUNT,f.BLEVEL FROM FT_INCOME_REPORT_LOG f 
		WHERE "SUBSTR"(f.TXN_DATE,6) >= '201601' AND "SUBSTR"(f.TXN_DATE,6) <= '201605' GROUP BY f.BLEVEL) ny
LEFT JOIN 
 (SELECT "SUM"(f.AMOUNT) AS AMOUNT,6) >= '201501' AND "SUBSTR"(f.TXN_DATE,6) <= '201505' GROUP BY f.BLEVEL) oy
ON ny.BLEVEL=oy.BLEVEL

错误代码解析:
[Err] ORA-00923
[Err] ORA-00923: 未找到要求的 FROM 关键字
[Err] ORA-00904:
[Err] ORA-00904: "SI"."S_ITEM": 标识符无效

[Err] ORA-0090
[Err] ORA-00907: 缺失右括号
[Err] ORA-00933
##看看是不是SQL语句中缺少where,on,and,or,order,group,by等
[Err] ORA-00933: SQL 命令未正确结束
[Err] ORA-00972: 标识符过长,看看是不是,字符串少了引号"
oracle 无效的列索引,?占位符与所提供的变量数,不相同
ORA-00918: 未明确定义列 ,看看有没有列名存在相同的

相关文章

文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符...
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远...
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语...
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseErr...
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Or...
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点...