SQL中嵌套的IF语句

时间:2015-03-23 18:18:22

标签: mysql excel if-statement nested

我正在尝试重新创建以下嵌套的IF语句,我在SQL查询中使用excel:

= IF(AE20 = “”,0,IF(AH20 = “”,IF(Ag 2 O的= “”,IF(AF20 = “”,IF(AE20 = “”, “”,AE20),AF20), Ag 2 O的),AH20))

我做了一些研究,似乎我需要使用CASE,但在示例中,我发现在上面的示例中,我仍然无法使用正确的语法连接点。

我以为它会以

开头

选择案例 当ex_table.AE =“”

我不知道从那里去哪里。感谢您的帮助!

修改

mysql表称为best_estimate

我有以下字段:JCE_TOTAL, CDSI_TOTAL, INITIAL_TOTAL and FINAL_TOTAL

我希望我的SQL查询遍历这些列并选择最新的可用值(这些值随着时间的推移,按照上面列出的顺序可用)。

如果FINAL_TOTAL中有值,则应选择FINAL_TOTAL中的值。

如果FINAL_TOTAL为空,但INITIAL_TOTAL中有值,则应选择该值。

如果这两个字段都是空白,但CDSI_TOTAL有值,则应选择CDSI_TOTAL等。

如果所有字段都为空,则结果应为0

1 个答案:

答案 0 :(得分:1)

如果我的目标正确无误,则无需执行此大型嵌套CASE声明。有更简单的方法:

SELECT COALESCE(AE, AH, AG, ...) AS my_value
FROM my_table

所以根据你的评论你的查询可能是:

SELECT COALESCE(FINAL_TOTAL, INITIAL_TOTAL, CDSI_TOTAL, JCE_TOTAL,  0 ) AS my_value
FROM best_estimate

修改

SELECT 
   OFS_ID,
   COALESCE(FINAL_TOTAL, INITIAL_TOTAL, CDSI_TOTAL, JCE_TOTAL,  0 ) AS my_value
FROM best_estimate