SQL SELECT 語句中的條件邏輯
SQL 的 SELECT
語句不直接支援 IF...THEN
建構。 但是,有兩種有效的替代方法可用於實現條件邏輯:CASE
語句和 IIF
函數(在某些 SQL 方言中可用)。
利用 CASE 語句
CASE
語句反映了其他程式語言中 IF...THEN
的功能。它按順序評估條件並根據滿足的第一個條件傳回一個值。
文法:
<code class="language-sql">SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END AS new_column_name, other_columns FROM your_table;</code>
範例:
<code class="language-sql">SELECT CASE WHEN IsActive = 'Yes' THEN 'Active' WHEN IsActive = 'No' THEN 'Inactive' ELSE 'Unknown' END AS Status, * FROM Users;</code>
此查詢新增「狀態」列,根據 IsActive
列的值指派「活動」、「非活動」或「未知」。
使用 IIF 函數 (SQL Server)
IIF
函數(在 SQL Server 2012 中引入)提供了一種簡潔的方法來處理 SELECT
語句中的條件邏輯。
文法:
<code class="language-sql">IIF(condition, true_result, false_result)</code>
範例:
<code class="language-sql">SELECT IIF(OrderTotal > 100, 'High Value', 'Low Value') AS OrderCategory, * FROM Orders;</code>
此範例建立一個「OrderCategory」列,根據 OrderTotal
將訂單分類為「高價值」或「低價值」。 請注意,IIF
特定於 SQL Server,在其他資料庫系統中可能無法使用。 為了更廣泛的相容性,通常首選 CASE
語句。
以上是如何在SQL SELECT語句中實現條件邏輯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!