簡體   English   中英

SQL中的嵌套IF語句

[英]Nested IF statement in SQL

我正在嘗試重新創建在SQL查詢中的excel中使用的以下嵌套IF語句:

= 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

如果我正確地確定了您的目標,則無需執行此大型嵌套的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM