[英]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.