SQL 中的 If-Then-Else 邏輯
SQL 提供使用 CASE 語句執行條件邏輯的能力。雖然它可能不提供 if-then-else 結構的直接語法,但它使您能夠定義一系列條件和相應的操作。
問題:
假設您想要根據特定優先順序從表中選擇資料:
使用 CASE 的解決方案:
SELECT product, price FROM table1 WHERE CASE WHEN EXISTS (SELECT 1 FROM table1 WHERE project = 1) THEN 1 WHEN EXISTS (SELECT 1 FROM table1 WHERE customer = 2) THEN 2 WHEN EXISTS (SELECT 1 FROM table1 WHERE company = 3) THEN 3 ELSE NULL END IS NOT NULL;
此查詢依序評估每個條件。如果project有記錄,則傳回符合的行;否則,它會檢查客戶,然後檢查公司。僅選擇滿足任何條件的行。
示例:
下表包含一些示例數據:
product | price | project | customer | company |
---|---|---|---|---|
A | 10 | 1 | NULL | NULL |
B | 20 | NULL | 2 | NULL |
C | 30 | NULL | NULL | 3 |
正在執行查詢將返回以下結果:
product | price |
---|---|
A | 10 |
因為有一行包含project = 1、忽略其他條件,選擇產品「A」的行。
以上是如何使用SQL的CASE語句實作If-Then-Else邏輯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!