변수 선언 및 조건문 사용법
-- DROP FUNCTION "SAMPLE".basicfunc();
-- DROP FUNCTION "SAMPLE".basicfunc();
CREATE OR REPLACE FUNCTION "SAMPLE".basicfunc()
RETURNS int4
LANGUAGE plpgsql
AS $function$
declare -- declare안에서만 변수 선언이 가능하다.
resTest int4;
getTest_01 int4;
getTest_02 int4 := 2;
getTest_03 int4 := 3;
/*이곳에서 바로 함수를 호출해서 데이터를 받아올 수도 있다.*/
getTest_11 numeric := func_make_your_func();
num numeric := 10; -- 단일 값
numbers numeric[] := ARRAY[10, 20, 30]; -- 배열
begin
getTest_01 := 1;
/*케이스문 사용법*/
CASE
WHEN getTest_01 = getTest_02 THEN resTest := 1;
RAISE NOTICE 'getTest_01 값: %', getTest_01;
RAISE NOTICE 'getTest_01 : getTest_02 값: % : %',getTest_01, getTest_02;
RAISE NOTICE 'getTest_01 와 getTest_02 는 같습니다. ';
WHEN getTest_01 != getTest_02 THEN resTest := 2;
RAISE NOTICE 'getTest_01 값: %', getTest_01;
RAISE NOTICE 'getTest_01 : getTest_02 값: % : %',getTest_01, getTest_02;
RAISE NOTICE 'getTest_01 와 getTest_02 는 다릅니다. ';
ELSE resTest := 0;
END CASE;
/*if문 사용법*/
if getTest_01 < getTest_02 and getTest_01 < getTest_03 then resTest := 4;
elseif getTest_01 <= getTest_02 or getTest_01 >= getTest_03 then resTest := 5;
else resTest := 6;
end if;
RAISE NOTICE 'pumpDrv 값: %', resTest;
RAISE NOTICE 'pumpDrv 값: %', resTest;
RAISE NOTICE 'pumpDrv 값: %', resTest;
RAISE NOTICE 'end Return_________________________________________________';
-- 첫 번째 루프: 단순 반복
FOR i IN 1..num LOOP
RAISE NOTICE 'num i : %', i;
END LOOP;
-- 두 번째 루프: 배열을 반복
FOR i IN 1..array_length(numbers, 1) LOOP
RAISE NOTICE 'numbers i : %, value : %', i, numbers[i];
END LOOP;
return getTest_02;
END;
$function$
;