【SQL】ストアド ~ 基本編 / 条件分岐 ~

■ はじめに

ストアドの条件分岐について扱う

目次

【1】IF
【2】サンプル
 例1:Hello World

【1】IF

IF 【条件1】 THEN
  --
ELSEIF 【条件2】 THEN
  -- 
ELSE
  -- 
END IF;

PostgreSQL
https://www.postgresql.jp/document/7.2/programmer/plpgsql-control-structures.html

【2】サンプル

SQL Fiddle
https://www.db-fiddle.com/

例1:Hello World

-- 結果格納用テーブル
CREATE TABLE demo_result(result VARCHAR(100), message VARCHAR(100));

-- ストアドプロシージャ
CREATE OR REPLACE PROCEDURE demo_cedure()
  LANGUAGE plpgsql
AS $$
BEGIN

  FOR i IN 1..10 LOOP
    IF i < 3 THEN
      INSERT INTO demo_result VALUES (i, 'Hello');
    ELSEIF i < 7 THEN
      INSERT INTO demo_result VALUES (i, 'World');
    ELSE
      INSERT INTO demo_result VALUES (i, 'Others');
    END IF;
  END LOOP;
END
$$

-- 呼び出し
CALL demo_cedure();

-- 結果表示
SELECT * FROM demo_result;
result message
1 Hello
2 Hello
3 World
4 World
5 World
6 World
7 Others
8 Others
9 Others
10 Others

関連記事

ストアド ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2010/08/06/112528
ストアド ~ 基本編 / 変数 ~
https://dk521123.hatenablog.com/entry/2013/01/25/002936
ストアド ~ 基本編 / 繰り返し ~
https://dk521123.hatenablog.com/entry/2012/06/22/213026
PostgreSQL】ストアド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/04/21/000100
PostgreSQL】ストアド ~ SELECT INTO ~
https://dk521123.hatenablog.com/entry/2024/11/11/212756