IF文を使って条件分岐する書き方
学習中のため、とりあえず動く書き方を記録する。
やりたいこと
USER_TABLEの「user_id」が2以上10未満の場合コンソールに「適正なユーザーです」と表示。
それ以外の場合、「不正なユーザーです」と表示する。
今回使うテーブル
書き方
IF(条件) then 処理 ELSE 処理 END IF の構造で書く。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
CREATE OR REPLACE FUNCTION if_test () RETURNS text AS $body$ DECLARE cnt_min integer := 1; cnt_max integer := 10; u_name varchar; rec RECORD; user_cursor cursor for select user_id,user_name,dept_no,start_date,end_date from user_table; BEGIN open user_cursor; LOOP FETCH user_cursor INTO rec; IF NOT FOUND THEN EXIT; END IF; IF (rec.user_id > cnt_min) and (rec.user_id < cnt_max) THEN RAISE INFO '適正なユーザーです'; ELSE RAISE INFO '不正なユーザーです'; END IF; END LOOP; CLOSE user_cursor; return 'FINISH!'; END; $body$ LANGUAGE plpgsql; select * from if_test(); |
今回は以上。まだまだ違う書き方がいっぱいあるため、引き続き記録していく。
コメント