postgresql if문 예제

이 섹션에서는 모든 제어 구조 문을 설명하며 컨트롤 구조는 PL/pgSQL에서 가장 유용한 부분일 수 있습니다. PL/pgSQL의 제어 구조를 사용하면 PostgreSQL 데이터를 매우 유연하고 강력한 방식으로 조작할 수 있습니다. 키워드 LOOP는 함수 내에서 기본 무조건 루프를 시작하는 데 사용됩니다. 무조건 루프의 기본 작업은 EXIT 문에 도달할 때까지 본문 내에서 문을 실행하는 것입니다. EXIT 문에 도달 하려면 EXIT 키워드WHEN 와 함께 필요 하 고 루프에서 EXIT에 도달 하는 조건을 보유 하는 식 다음에 필요 합니다. 피보나치 함수는 정수를 받아들이고 Nth 피보나치 번호를 반환합니다. 정의에 따르면, Fibonacci 숫자는 0과 1로 시작하는 정수의 시퀀스이며, 각 후속 숫자는 제품 이전 두 숫자, 예를 들어 1, 1, 2 (1 +1), 3 (2 +1), 5 (3 +2), 8 (5 +3), … IF-THEN 문은 IF의 가장 간단한 형태입니다. 조건이 true인 경우 THEN 및 END IF 사이의 명령문이 실행됩니다. 그렇지 않으면 건너뜁니다. 행을 반환하지 않지만 UPDATE, INSERT 또는 DELETE와 같은 쓰기 작업을 수행하는 함수를 만드는 경우 RETURNS TYPE 문을 RETURNS void로 설정해야 합니다. : IF/THEN/ELSE/IF 문은 여러 IF 문을 계열로 연결하는 메커니즘입니다.

먼저 한 가지 조건이 검사됩니다. 첫 번째 조건이 FALSE로 평가되면 다른 조건이 검사됩니다. TRUE로 평가되는 조건이 없는 경우 최종 ELSE가 사례를 제공할 수 있습니다. IF/THEN/ELSE/IF 문에 대한 구문은 다음과 같습니다: 참고: 섹션 4.2.14에 설명된 대로 표현식의 하위 표현식이 서로 다른 시간에 평가되는 다양한 상황이 있으므로 « CASE는 필요한 것만 평가합니다. 하위 표현 »은 철갑이 아닙니다. 예를 들어 상수 1/0 하위 표현식은 일반적으로 런타임에 입력되지 않는 CASE 암 내에 있더라도 계획 시 0으로 나누기 오류가 발생합니다. 이것은 테이블에 새 포인트와 영숫자 데이터를 삽입하기 위해 호출할 수 있는 함수의 예입니다: 다른 ELSE IF 문은 이전 ELSE IF 문 내에 중첩되고 주체 ID 번호가 NULL로 설정된 경우 실행됩니다. sub_id가 null이면 함수의 시작 부분에서 SELECT INTO 문에 의해 검색되었을 때 함수에 전달된 제목이 booktown 데이터베이스에서 찾을 수 없습니다. 이 경우 함수는 찾을 수 없는 문자열 제목을 반환합니다. 그러나 IN이 입력 인수를 정의하고 출력 인수를 OUT하는 IN 및 OUT을 사용하여 입력 및 출력 인수를 정의하는 또 다른 방법이 있습니다. OUT 인수 선언은 여러 값을 반환해야 할 때 유용합니다. 예를 들어 PostGIS를 사용하여 Pl/pgSQL 함수를 만들어 일부 데이터의 형상을 수정하는 프로세스를 미리 정의할 수 있습니다.

예를 들어, 포인트에서 별 다각형을 만드는 이 예제를 기반으로(자세히 설명되고 재미있어 읽기) IF 문은 조건부true인 경우 문을 실행합니다. 조건이 false로 평가되면 컨트롤은 END IF 부분 다음에 다음 문으로 전달됩니다. 다음은 IF 문의 가장 간단한 형태를 보여 줍니다: 선언 섹션에서 카운터 변수는 0(0)으로 초기화됩니다. 루프 내부에서 카운터가 n과 같으면 루프가 종료됩니다. 명령: 참고: 예제 11-38에서 사용되는 두 함수는 이 섹션의 후반부에 루프를 사용하여 프로그램 흐름을 제어하는 예제로 만들어집니다. WHILE 루프는 언급된 조건이 false가 될 때까지 문 블록 내에서 반복적으로 작업을 수행하는 데 사용됩니다.