SQL Server中的邏輯函數介紹

IIF: 根據佈爾表達式計算為 true 還是 false,返回其中一個值。

IIF 是一種用於編寫 CASE 表達式的快速方法。 它將傳遞的佈爾表達式計算為第一個參數,然後根據計算結果返回其他兩個參數之一。也即,如果佈爾表達式為 true,則返回 true_value;如果佈爾表達式為 false 或未知,則返回 false_value。 true_value 和 false_value 可以是任何類型。

語法:

IIF ( boolean_expression, true_value, false_value )

舉例:

DECLARE @a int = 45, @b int = 40;  
SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;

CHOOSE: 從值列表返回指定索引處的項。

CHOOSE 像索引一樣進入數組中,其中,數組由跟在索引參數之後的各參數組成。 索引參數確定將返回以下哪些值。從 1 開始的索引

語法:

CHOOSE ( index, val_1, val_2 [, val_n ] )

舉例:下面的示例從所提供的值列表中返回第三項。

SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;  --返回Developer

舉例:以下示例返回雇傭員工時的季度。 MONTH 函數用於從 HireDate 列返回月份值。

USE AdventureWorks2012;  
GO  
SELECT JobTitle, HireDate, CHOOSE(MONTH(HireDate),'Winter','Winter', 'Spring','Spring','Spring','Summer','Summer',   
                                                  'Summer','Autumn','Autumn','Autumn','Winter') AS Quarter_Hired  
FROM HumanResources.Employee  
WHERE  YEAR(HireDate) > 2005  
ORDER BY YEAR(HireDate);

COALESCE: 按順序計算變量並返回第一個不等於 NULL 的第一個表達式的當前值

例如,SELECT COALESCE(NULL, NULL, 'third_value', 'fourth_value'); 返回第三個值,因為第三個值是首個為非 Null 的值。如果所有參數都為 NULL,則 COALESCE返回 NULL

語法:

COALESCE ( expression [ ,…n ] )

舉例:

SELECT Name, Color, ProductNumber, COALESCE(Color, ProductNumber) AS FirstNotNull FROM Products ;

NULLIF:如果兩個指定的表達式相等,則返回空值。如果兩個表達式不相等,則 NULLIF 返回第一個 expression 的值。

例如,SELECT NULLIF(4,4) AS Same, NULLIF(5,7) AS Different; 為第一列(4 和 4)返回 NULL,因為兩個輸入值相同。 第二列返回第一個值 (5),因為兩個輸入值不同。

舉例:

SELECT AVG(NULLIF(COALESCE(current_year, previous_year), 0.00)) AS 'Average Budget' FROM budgets;

到此這篇關於SQL Server邏輯函數的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: