📜  SQL Server 中的 IIF()函数

📅  最后修改于: 2022-05-13 01:55:16.205000             🧑  作者: Mango

SQL Server 中的 IIF()函数

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

句法 :

IIF(boolean_value, true_value, false_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 ; 

输出 :结果

真的

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

G_idG_status
13
22
34
42
53
61
72
81
94
101
114
123
131
143

示例 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 ; 

输出 :

StatusCount
Waiting4
InProgress3
Rejected4
Completed3

示例 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()函数得出每个状态的编号。

WaitingInProgressRejectedCompletedTotal
434315