我正在尝试重新创建以下嵌套的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
答案 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