掌握 SQL SELECT 語句中的條件邏輯:CASE 與 IIF
有效管理 SQL SELECT
語句中的條件邏輯對於資料運算和篩選至關重要。 雖然標準 SQL 中不提供直接的 IF...THEN
構造,但 CASE
語句和 IIF
(在 SQL Server Denali 及更高版本中)提供了可靠的替代方案。
CASE 語句:您的 SQL 條件主力
CASE
語句反映了 IF...THEN
的功能,依序評估條件並根據第一個真實條件傳回一個值。 其架構如下:
<code class="language-sql">SELECT CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE default_value END AS <alias>, -- Assign an alias to the result * FROM <table_name></code>
考慮這個實際應用:
<code class="language-sql">SELECT CAST( CASE WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1 ELSE 0 END AS bit) AS Saleable, -- Casts the result as a BIT (Boolean) * FROM Product</code>
注意 CAST
運算子。 沒有它,結果是一個整數(0或1);使用 CAST
,它會轉換為布林值(TRUE 或 FALSE)。
IIF:簡潔的條件選項 (SQL Server)
SQL Server 引入了 IIF
(立即 If)語句,為 CASE
提供了更緊湊的替代方案:
<code class="language-sql">SELECT IIF(condition, true_value, false_value) AS <alias>, * FROM <table_name></code>
以下是它如何應用於我們的範例:
<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable, * FROM Product</code>
CASE
和 IIF
都是在 SQL SELECT
查詢中實現條件邏輯、實現動態資料操作和高效過濾不可或缺的工具。
以上是如何使用 CASE 和 IIF 在 SQL SELECT 語句中實作條件邏輯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!