WHERE子句中CASE语句的用法-PL / SQL

问题描述 投票:0回答:2

有人可以告诉我“ end ='Y')“]中最后一个'Y'的用途是什么]

( case
 when a = 'STAGE PAYMENT' then
 'Y'
 when b not IN ('To be Received', 'Received') then
 'N'
 when c != (d - NVL(e, 0) - NVL(f, 0) - NVL(g, 0)) then
 'Y'
 when NVL(h, 0) + NVL(i, 0) + NVL(j, 0) <> 0 then
    case 
    when c != k then
    'Y'
    when (-l != NVL(e, 0) + NVL(f, 0) + NVL(g, 0) + NVL(m, 0)) then
    'Y' 
    else 'N'
    end 
 else 'N'
 end = 'Y')

还有,有什么方法可以对此进行优化?

谢谢!

[有人可以告诉我,end ='Y')中最后一个'Y'的用途是什么(当a ='STAGE PAYMENT'的情况下,而当b不是IN时是'Y'的情况('待接收','当c!=(d-NVL(e,0)-...

oracle plsql nested conditional-statements case
2个回答
0
投票

最后end = 'Y')只不过是比较。


0
投票

由于您的case语句是where子句的一部分,所以= 'Y'在那里形成谓词。

© www.soinside.com 2019 - 2024. All rights reserved.