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 像索引一样进入数组中,其中,数组由跟在索引参数之后的各参数组成。 索引参数确定将返回以下哪些值。从 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);
例如,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 ;
例如,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逻辑函数的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。
相关文章: