[PostgreSQL] 변수 선언, 조건문, 반복문

easywoo8080·2024년 12월 2일

PostgreSQL

목록 보기
2/3

변수 선언 및 조건문 사용법

		-- 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$
;

0개의 댓글