SQL IIF() 函数

SQL IIF() 函数

SQL IIF() 函数用于验证条件是真还是假。

它接受三个参数,即布尔表达式、真值和假值,并根据布尔表达式在 SQL Server 中的值是真还是假返回其中之一。如果条件为真,则返回真值;否则返回假值。

注意 - 如果表达式不是布尔表达式或无效表达式, IIF() 函数将抛出错误。

语法

下面是 SQL IIF() 函数的语法:

IIF( boolean_expression, true_value, false_value )

参数

  • boolean_expression - 它是一个有效的布尔表达式。

  • true_value - 它是一个可以是任何数据类型的值,当布尔表达式求值为 true 时返回。

  • false_value - 它是一个可以是任何数据类型的值,当布尔表达式求值为 false 时返回。

返回值

该函数根据布尔表达式返回两个值之一。

示例

在以下示例中,我们使用SQL的 IIF() 函数来验证布尔表达式 ’10 >5′是否求值为true(返回1)还是false(返回0)。

SELECT IIF(10>5, 1, 0) as Result;

输出

执行以上程序后,将输出以下结果:

+-------+
| Result|
+-------+
| 1     |
+-------+

示例

以下是SQL中 IIF() 函数的另一个示例,我们在这里使用这个函数来比较两个字符串 ‘Hello’‘World’ 的长度,以确定哪个更长。

DECLARE
@STR1 VARCHAR(10) = 'Hello', @STR2 VARCHAR(10) = 'World';
SELECT IIF(LEN(@STR1) > LEN(@STR2), @STR1 + ' string is larger', @STR2 + ' string is larger ') as Result;

输出

下面是上述语句的输出−

+-------------------------+
| Result                  |
+-------------------------+
| World string is larger  |
+-------------------------+

示例

如果我们传递一个无效的boolean_expression,这个函数会抛出一个错误。

在这个示例中,我们使用SQL的 IIF() 函数来验证boolean_expression ‘a >b’是否被评估为 true(返回’valid’)false(返回’invalid’)

SELECT IIF('a>b', 'valid', 'invalid');

输出

上述SQL语句生成以下输出:

An expression of non-boolean type specified in a context where a condition is expected, near '('.

示例

您还可以将表列作为参数传递给SQL IIF() 函数,以验证哪个 客户的薪水 大于特定金额。假设我们使用以下 CREATE 语句创建了名为 Customer 的表-

CREATE TABLE CUSTOMERS(    
   ID INT NOT NULL,    
   NAME VARCHAR (20) NOT NULL,    
   AGE INT NOT NULL,    
   ADDRESS CHAR (25) ,    
   SALARY DECIMAL (18, 2));

现在,让我们使用下面所示的 INSERT 语句将一些记录插入到 Customers 表中-

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'kaushik', 23, 'Kota', 2000.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );

以下SQL查询验证了在“Customer’s”表中薪水小于 2000 的客户:

SELECT ID, NAME, SALARY, IIF(SALARY > 2000, 'Salary is greater than 1000', 'Salary is less than 1000') AS RESULT FROM CUSTOMERS;

输出

以上SQL查询生成以下输出−

+----+----------+---------------+-----------------------------+
| ID | NAME     | SALARY        | RESULT                      |
+----+----------+---------------+-----------------------------+
|  1 | Ramesh   | 2000.00       | Salary is less than 1000    |
|  2 | Khilan   | 1500.00       | Salary is less than 1000    |
|  3 | kaushik  | 2000.00       | Salary is less than 1000    |
|  4 | Chaitali | 6500.00       | Salary is greater than 1000 |
+----+----------+---------------+-----------------------------+

注意 − 您还可以使用 IIf() 函数来检查年龄大于指定年龄标准的客户。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程