当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


SQL Server IIF()用法及代码示例


SQL Server IIF()函数具有三个参数。 IIF()函数判断或评估第一个参数,如果第一个参数为真,则返回第二个参数;否则,它返回第三个参数。在SQL Server中使用的IIF()函数将if-else逻辑添加到查询中。

用法:

IIF(boolean_value, true_value, false_value)

语法中使用的参数:

  • boolean_value-
    这是一个需要判断的价值。它必须是有效的布尔值,否则该函数将引发错误。
  • true_value-
    如果boolean_value为true,则为要得到的值。
  • false_value-
    如果boolean_value为false,则为该值。

要知道的事实:IIF()函数类似于CASE表达式-

CASE  
   WHEN boolean_expression  
       THEN true_value
   ELSE
       false_value
END

示例1:
要使用IIF()函数检查是否40 <60:



SELECT  IIF(40 < 60, 'True', 'False') AS Result ; 

输出: 结果

True

让我们假设下面有一个名为“ Geektable”的示例表:

G_id G_状态
1 3
2 2
3 4
4 2
5 3
6 1
7 2
8 1
9 4
10 1
11 4
12 3
13 1
14 3

示例-2:
在表列中使用IIF()函数。
下面的示例在IIF()函数中使用IIF()函数:

SELECT    
   IIF(G_status = 1, ‘Waiting’,  
       IIF(G_status=2, ‘InProgress’,
           IIF(G_status=3, ‘Rejected’,
               IIF(G_status=4, ‘Completed’)
           )
       )
   ) AS Status,

   COUNT(G_id) AS Count
FROM Geektable
GROUP BY G_status ; 

输出:

状态 计数
Waiting 4
InProgress 3
Rejected 4
Completed 3

示例3:
将IIF()函数与聚合函数一起使用。
下面的示例将IIF()函数与SUM()函数一起使用:

SELECT    
   SUM(IIF(G_status = 1, 1, 0)) AS ‘Waiting’,  
   SUM(IIF(G_status = 2, 1, 0)) AS ‘InProgress’,  
   SUM(IIF(G_status = 3, 1, 0)) AS ‘Rejected’,  
   SUM(IIF(G_status = 4, 1, 0)) AS ‘Completed’,  
   COUNT(*) AS Total

FROM  Geektable;

输出:
如果状态匹配,则IIF()函数的结果为1或0。 SUM()函数产生每个状态的编号。

等候 进行中 拒绝 已完成
4 3 4 3 15

相关用法


注:本文由纯净天空筛选整理自khushboogoyal499大神的英文原创作品 IIF() Function in SQL Server。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。