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,1,6) >= '201601' AND "SUBSTR"(f.TXN_DATE,1,6) <= '201605' GROUP BY f.BLEVEL) ny
LEFT JOIN
(SELECT "SUM"(f.AMOUNT) AS AMOUNT,f.BLEVEL FROM FT_INCOME_REPORT_LOG f
WHERE "SUBSTR"(f.TXN_DATE,1,6) >= '201501' AND "SUBSTR"(f.TXN_DATE,1,6) <= '201505' GROUP BY f.BLEVEL) oy
ON ny.BLEVEL=oy.BLEVEL

[color=red]错误代码解析:[/color]
[color=red] [Err] ORA-00923[/color]
[Err] ORA-00923: [color=red]未找到要求的 FROM 关键字[/color]
[color=red][Err] ORA-00904:[/color]
[Err] ORA-00904: "SI"."S_ITEM": [color=red]标识符无效
[/color]
[color=red][Err] ORA-0090[/color]
[Err] ORA-00907: [color=red]缺失右括号[/color]
[color=red][Err] ORA-00933[/color]
##看看是不是SQL语句中缺少where,on,and,or,order,group,by等
[Err] ORA-00933: [color=red]SQL 命令未正确结束[/color]
[Err] ORA-00972:[color=red] 标识符过长[/color],看看是不是,字符串少了引号"
oracle [color=red]无效的列索引[/color],?占位符与所提供的变量数,不相同
ORA-00918:[color=red]未明确定义列[/color] ,看看有没有列名存在相同的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值