🤞
iifと集計関数を組み合わせてselect結果を表示する
iif関数の構文
まず、iif関数の構文になります。
指定された条件に合致する場合は "Trueの戻り値" が表示され、そうでない場合は "Falseの戻り値" が表示されます。
構文
iif(判定条件, True時の戻り値, False時の戻り値)
参考資料:公式ドキュメント
サンプル
次に、iifを用いたサンプルクエリーをご紹介します。
たとえば、以下のデータを持つテーブルがあった場合、
商品テーブル(PRODUCT)
PRODUCT_NO | PRODUCT_NAME |
---|---|
1 | りんご |
2 | 梨 |
3 | グレープフルーツ |
それに対して下記のクエリーを実行すると、
商品判定クエリー
select
PRODUCT.PRODUCT_NO as 商品番号,
iif(PRODUCT_NAME = 'りんご', 'りんごだよ!', 'りんごじゃないよ!') as 判定
from
PRODUCT
表示結果はこのようになり、表示結果を分岐させることができます。
商品番号 | 判定 |
---|---|
1 | りんごだよ! |
2 | りんごじゃないよ! |
3 | りんごじゃないよ! |
集計関数との組み合わせ
最後に、iifと集計関数を組み合わせて、select結果を表示する方法をご紹介します。
以下のデータを持つテーブルがあった場合に、
商品テーブル(PRODUCT)
PRODUCT_NO | PRODUCT_NAME |
---|---|
1 | りんご |
2 | 梨 |
3 | グレープフルーツ |
売上テーブル(SALES)
SALES_NO | PRODUCT_NO | SALES_VOLUME |
---|---|---|
1 | 1 | 5 |
2 | 1 | 3 |
3 | 2 | 1 |
このようなクエリーを実行することで、
売上集計クエリー
select
PRODUCT.PRODUCT_NO as 商品番号,
PRODUCT_NAME as 商品名,
iif(sum(SALES_VOLUME) is null, 0, sum(SALES_VOLUME)) as 売上数合計
from
PRODUCT
left outer join SALES
on PRODUCT.PRODUCT_NO = SALES.PRODUCT_NO
group by
PRODUCT.PRODUCT_NO,
PRODUCT.PRODUCT_NAME
order by
PRODUCT.PRODUCT_NO
商品ごとの売上数量を集計し、売り上げがなかったものも含めて表示させることができます。
実行結果
商品番号 | 商品名 | 売上数合計 |
---|---|---|
1 | りんご | 8 |
2 | 梨 | 1 |
3 | グレープフルーツ | 0 |
Discussion