oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2455字,纯文字阅读大概需要4分钟。
内容图文
![oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断](/upload/InfoBanner/zyjiaocheng/1316/5314dbfa2c804665adb677ea41ec6698.jpg)
oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断
查询方式一:
1 SELECT 2 CASE WHEN (SELECTCAST(SUM(CASE 3WHEN (ALLOCABLE_PRIME_CURRENCY_VALUE ISNULLAND STATE_IND =1) THEN 4 NVL(PRIME_CURRENCY_VALUE, 0) 5ELSE 6 NVL(ALLOCABLE_PRIME_CURRENCY_VALUE, 0) END) ASNUMBER(18,6)) AS ALLOCABLE_PRIME_CURRENCY_VALUE 7FROM RP_LEDGER_ITEM R 8WHERE R.SOURCE_ID = RP_CASH_MOVEMENT.CASH_MOVEMENT_ID 9AND SOURCE_TYPE =‘CASH‘) =0THEN0ELSE1END, 10 (SELECTSUM(CASE11WHEN (ALLOCABLE_PRIME_CURRENCY_VALUE ISNULLAND STATE_IND =1) THEN12 NVL(PRIME_CURRENCY_VALUE, 0) 13ELSE14 NVL(ALLOCABLE_PRIME_CURRENCY_VALUE, 0) END) AS ALLOCABLE_PRIME_CURRENCY_VALUE 15FROM RP_LEDGER_ITEM R 16WHERE R.SOURCE_ID = RP_CASH_MOVEMENT.CASH_MOVEMENT_ID 17AND SOURCE_TYPE =‘CASH‘), 18RP_LEDGER_ITEM.LEDGER_ITEM_ID 19FROM RP_CASH_MOVEMENT 20LEFTJOIN RP_LEDGER_ITEM 21ON RP_LEDGER_ITEM.CASH_MOVEMENT_ID = RP_CASH_MOVEMENT.CASH_MOVEMENT_ID 22AND RP_LEDGER_ITEM.CASH_MOVEMENT_ID ISNOTNULL23WHERE NVL(RP_CASH_MOVEMENT.IS_RESERVE_FUND, ‘0‘) =‘0‘24AND1=125AND RP_CASH_MOVEMENT.RP_ID =‘R‘26AND RP_CASH_MOVEMENT.INPUT_DATE >=27 TO_DATE(‘2014/2/1 0:00:00‘, ‘YYYY-MM-DD HH24:MI:SS‘) 28AND (RP_CASH_MOVEMENT.OFFICE_ID =‘0B4B12XOG33MO‘)
查询结果如下:
查询方式二:
SELECT CASE WHEN (SELECTCAST(SUM(CASEWHEN (ALLOCABLE_PRIME_CURRENCY_VALUE ISNULLAND STATE_IND =1) THEN NVL(PRIME_CURRENCY_VALUE, 0) ELSE NVL(ALLOCABLE_PRIME_CURRENCY_VALUE, 0) END) ASNUMBER(18,6)) AS ALLOCABLE_PRIME_CURRENCY_VALUE FROM RP_LEDGER_ITEM R WHERE R.SOURCE_ID = RP_CASH_MOVEMENT.CASH_MOVEMENT_ID AND SOURCE_TYPE =‘CASH‘) =0THEN0ELSE1END, (SELECTSUM(CASEWHEN (ALLOCABLE_PRIME_CURRENCY_VALUE ISNULLAND STATE_IND =1) THEN NVL(PRIME_CURRENCY_VALUE, 0) ELSE NVL(ALLOCABLE_PRIME_CURRENCY_VALUE, 0) END) AS ALLOCABLE_PRIME_CURRENCY_VALUE FROM RP_LEDGER_ITEM R WHERE R.SOURCE_ID = RP_CASH_MOVEMENT.CASH_MOVEMENT_ID AND SOURCE_TYPE =‘CASH‘), ‘‘ LEDGER_ITEM_ID FROM RP_CASH_MOVEMENT LEFTJOIN RP_LEDGER_ITEM ON RP_LEDGER_ITEM.CASH_MOVEMENT_ID = RP_CASH_MOVEMENT.CASH_MOVEMENT_ID AND RP_LEDGER_ITEM.CASH_MOVEMENT_ID ISNOTNULLWHERE NVL(RP_CASH_MOVEMENT.IS_RESERVE_FUND, ‘0‘) =‘0‘AND1=1AND RP_CASH_MOVEMENT.RP_ID =‘R‘AND RP_CASH_MOVEMENT.INPUT_DATE >= TO_DATE(‘2014/2/1 0:00:00‘, ‘YYYY-MM-DD HH24:MI:SS‘) AND (RP_CASH_MOVEMENT.OFFICE_ID =‘0B4B12XOG33MO‘)
查询结果如图:
2条sql语句最大的区别在于
有些可能表达不清楚,
主要原因我也不知道,如果谁有兴趣可以回复我!
原文:http://www.cnblogs.com/xzxy/p/3732402.html
内容总结
以上是互联网集市为您收集整理的oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断全部内容,希望文章能够帮你解决oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。