SQL 中的嵌套 IF 语句
Nested IF statement in SQL
我正在尝试在 SQL 查询中重新创建我在 excel 中使用的以下嵌套 IF 语句:
=IF(AE20="",0,IF(AH20="",IF(AG20="",IF(AF20="",IF(AE20="","",AE20),AF20 ),AG20),AH20))
我做了一些研究,看来我需要使用 CASE,但在我发现的示例中,我仍然无法按照上面的示例使用正确的语法连接点。
我以为它会开始
Select 案例
当 ex_table.AE = ""
而且我不确定从那里去哪里。感谢您的帮助!
编辑
mysqltable被称为best_estimate
。
我有以下字段:JCE_TOTAL, CDSI_TOTAL, INITIAL_TOTAL and FINAL_TOTAL
。
我希望我的 SQL 查询遍历这些列并选择最新的可用值(这些值随着时间的推移变得可用,按上面列出的顺序)。
如果 FINAL_TOTAL 中有一个值,它应该选择 FINAL_TOTAL 中的值。
如果 FINAL_TOTAL 为空,但 INITIAL_TOTAL 中有一个值,它应该 select 该值。
如果这两个字段都是空白,但 CDSI_TOTAL 有一个值,它应该选择 CDSI_TOTAL,等等
如果所有字段都为空,则结果应为 0
如果我正确地实现了您的目标,您就不需要执行此大型嵌套 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
我正在尝试在 SQL 查询中重新创建我在 excel 中使用的以下嵌套 IF 语句:
=IF(AE20="",0,IF(AH20="",IF(AG20="",IF(AF20="",IF(AE20="","",AE20),AF20 ),AG20),AH20))
我做了一些研究,看来我需要使用 CASE,但在我发现的示例中,我仍然无法按照上面的示例使用正确的语法连接点。
我以为它会开始
Select 案例 当 ex_table.AE = ""
而且我不确定从那里去哪里。感谢您的帮助!
编辑
mysqltable被称为best_estimate
。
我有以下字段:JCE_TOTAL, CDSI_TOTAL, INITIAL_TOTAL and FINAL_TOTAL
。
我希望我的 SQL 查询遍历这些列并选择最新的可用值(这些值随着时间的推移变得可用,按上面列出的顺序)。
如果 FINAL_TOTAL 中有一个值,它应该选择 FINAL_TOTAL 中的值。
如果 FINAL_TOTAL 为空,但 INITIAL_TOTAL 中有一个值,它应该 select 该值。
如果这两个字段都是空白,但 CDSI_TOTAL 有一个值,它应该选择 CDSI_TOTAL,等等
如果所有字段都为空,则结果应为 0
如果我正确地实现了您的目标,您就不需要执行此大型嵌套 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