如何在 SQL 中编写 if else if 条件 |甲骨文 |
Posted
技术标签:
【中文标题】如何在 SQL 中编写 if else if 条件 |甲骨文 |【英文标题】:How to write if else if condition in SQL | Oracle | 【发布时间】:2021-12-02 12:27:49 【问题描述】:我有点卡住需要编写 SQL if else if 对于下面的逻辑
仅作为 SQL 的基础知识
下面的逻辑需要导出到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
【问题讨论】:
这些都是您要查询的表中的所有列吗? @Mureinik : 是的,他们都在表中:员工 【参考方案1】:使用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
【讨论】:
谢谢蒂姆让我试试【参考方案2】:如果您可以拥有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
【讨论】:
以上是关于如何在 SQL 中编写 if else if 条件 |甲骨文 |的主要内容,如果未能解决你的问题,请参考以下文章