一、IIF函數概覽
IIF函數是SQL Server 2012版本中新增加的函數之一,可用於條件判斷和返回值,其語法結構為:IIF (Boolean_expression, true_value, false_value),其中Boolean_expression是一個條件表達式,true_value是當Boolean_expression為TRUE時返回的值,false_value是當Boolean_expression為FALSE時返回的值。
二、IIF函數應用
1、使用IIF函數進行條件判斷和返回值:
SELECT IIF(1=2, 'True', 'False') AS Result
上述語句中的Boolean_expression為1=2,返回的結果應為False。
2、使用IIF函數進行計算:
SELECT IIF(1=1, 100+200, 300-200) AS Result
上述語句中的Boolean_expression為1=1,返回的結果應為True,所以該語句返回的結果為300。
3、使用IIF函數進行空值判斷:
SELECT IIF(ISNULL(NULL), 'True', 'False') AS Result
上述語句中的Boolean_expression為ISNULL(NULL),ISNULL函數用於判斷一個表達式是否為NULL,如果表達式為NULL,則返回True,否則返回False。由於Boolean_expression返回的結果為True,所以該語句返回的結果應為True。
三、IIF函數深入應用
1、IIF函數嵌套:
SELECT IIF(1=2, IIF(2=3, 'True', 'False'), 'False') AS Result
上述語句中,內層的IIF函數判斷2=3的結果為False,所以返回的結果是False。外層的IIF函數判斷1=2的結果為False,所以返回的結果是False。
2、IIF函數與CASE語句的比較:
-- 使用IIF函數 SELECT IIF(1=2, 'True', 'False') AS Result -- 使用CASE語句 SELECT CASE WHEN 1=2 THEN 'True' ELSE 'False' END AS Result
上述語句使用了IIF函數和CASE語句分別進行了條件判斷並返回相應的結果,兩種方法的效果是相同的。
3、IIF函數在聯接查詢中的應用:
SELECT a.Id, a.Name, a.Age, b.Gender FROM TableA a LEFT JOIN TableB b ON a.Id = b.Id SELECT IIF(ISNULL(b.Gender), 'Unknown', b.Gender) AS Gender FROM TableA a LEFT JOIN TableB b ON a.Id = b.Id
上述語句中,在進行聯接查詢時,有可能會出現表B中某些數據為空,這時候我們就可以使用IIF函數進行判斷,如果為空,則返回一個我們預先定義好的值,如上述語句中的’Unknown’。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247291.html