SQL ServerのIIF()関数には3つのパラメータがあります。 IIF()関数は、最初のパラメータを判定または評価し、最初のパラメータが真であれば2番目のパラメータを返し、そうでなければ3番目のパラメータを返します。 >
構文 :
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_valueEND
例-1 :
IIF()関数を使って、40 < 60 であるかどうかを確認します。
SELECT IIF(40 < 60, 'True', 'False') AS Result ;
Output :
True
以下に「Geektable」という名前のサンプルテーブルがあるとしましょう。
G_id | G_status |
---|---|
1td | 3 |
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 |
Example-2 :
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 CountFROM GeektableGROUP BY G_status ;
Output :
Status | Count |
---|---|
Waiting | 4 |
InProgress | 3 |
Rejected | 4 |
Completed | 3 |
Example-3 :
IIF()関数を集約関数と一緒に使用する方法です。
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 TotalFROM Geektable;
出力 :
ここでは、IIF()関数は、ステータスが一致した場合、1または0を出力します。 SUM()関数は、各ステータスの数を計算します。
待機中 | 進行中 | 拒否された | 完了 | 合計 |
---|---|---|---|---|
4 | 3 | 4 | 3 | 15 |
記事のタグ :
SQL
練習用タグ :