简体   繁体   English

如何在 SQL 中写 if else if 条件 | Oracle |

[英]How to write if else if condition in SQL | Oracle |

I am little bit stuck need to write the SQL if else if for below logic我有点卡住需要写 SQL 如果其他逻辑如下

As only basic knowledge on SQL作为SQL的基础知识

Below logic need to derived to SQL query下面的逻辑需要导出到SQL查询

if depcost <> empcost and empcourseid in ('A','B') 
then

   empnfees=(empvar / empdar) * empcost

else if depcost <> empcost and empcourseid <> 'A'
then
     empnfees=empcost
else
     empnfees=depcost

Using a CASE expression, we can try:使用CASE表达式,我们可以尝试:

CASE WHEN depcost <> empcost AND empcourseid IN ('A', 'B')
     THEN (empvar / empdar) * empcost
     WHEN depcost <> empcost AND empcourseid <> 'A'
     THEN empcost
     ELSE depcost END AS empnfees

If you can have NULL values then (as NULL <> something is never true):如果您可以拥有NULL值,那么(如NULL <> something永远不会正确):

CASE
WHEN (  depcost <> empcost
     OR (depcost IS NULL AND empcost IS NOT NULL)
     OR (depcost IS NOT NULL AND empcost IS NULL)
     )
AND  empcourseid in ('A','B')
THEN empvar / empdar * empcost
WHEN (  depcost <> empcost
     OR (depcost IS NULL AND empcost IS NOT NULL)
     OR (depcost IS NOT NULL AND empcost IS NULL)
     )
AND  (  empcourseid <> 'A'
     OR empcourseid IS NULL
     )
THEN empcost
ELSE depcost
END AS empnfees

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM