이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.4다른_메이저 토토 사이트메이저 토토 사이트8버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.17. 조건식

이 섹션에서는 다음에 대해 설명합니다.SQL에서 사용 가능한 호환 조건식PostgreSQL.

팁:이러한 조건식의 기능을 넘어서는 요구 사항이 있는 경우 보다 윈 토토력이 풍부한 프로그래밍 언어로 저장 프로시저를 작성하는 것을 고려할 수 있습니다.

9.17.1. 사례

SQL 사례expression은 다른 프로그래밍 언어의 if/else 문과 유사한 일반 조건식입니다.

경우의 경우조건그때결과
     [언제 ...]
     [ELSE결과]
끝

사례절은 윈 토토식이 유효한 곳이면 어디든 사용할 수 있습니다. 각각조건a를 반환하는 윈 토토식입니다.부울결과. 조건의 결과가 true이면,의 값사례윈 토토식은결과조건을 따르는 것, 나머지는사례윈 토토식은 처리되지 않습니다. 조건의 결과가 true가 아닌 경우 후속언제절도 같은 방식으로 검사됩니다. 그렇지 않은 경우언제 조건참이 나오며, 값은사례윈 토토식은결과ELSE절. 만약ELSE절이 생략되었으며 true인 조건이 없으면 결과는 null입니다.

예:

SELECT * FROM 테스트;

 에
---
 1
 2
 3

선택하다,
       a=1이면 '1'인 경우
            a=2이면 '2'
            ELSE '기타'
       종료
    테스트에서;

 | 케이스
---+---------
 1 | 하나
 2 | 두
 3 | 기타

모든 데이터 유형결과식은 단일 출력 유형으로 변환 가능해야 합니다. 참조PostgreSQL : 문서 : 9.4 : 무지개 토토, Case 및 관련 구성자세한 내용은.

다음이 있습니다"간단함"형태사례위의 일반 형식의 변형인 윈 토토식:

사례윈 토토언제그때결과
    [언제 ...]
    [ELSE결과]
끝

첫번째윈 토토계산된 후 각각의윈 토토식언제절과 동일한 것이 발견될 때까지 절입니다. 일치하는 항목이 없으면결과ELSE절(또는 null 값)이 반환됩니다. 이는 다음과 유사합니다.스위치C의 진술

위의 예는 간단한 명령을 사용하여 작성할 수 있습니다.사례구문:

선택,
       CASE a WHEN 1 THEN '1'
              WHEN 2 THEN '둘'
              ELSE '기타'
       종료
    테스트에서;

 | 케이스
---+---------
 1 | 하나
 2 | 두
 3 | 기타

A 사례expression은 결과를 결정하는 데 필요하지 않은 하위 윈 토토식을 평가하지 않습니다. 예를 들어, 다음은 0으로 나누기 실패를 방지할 수 있는 방법입니다.

SELECT ... WHERE CASE WHEN x < 0 THEN y/x  1.5 ELSE false END;

참고:설명에 따라섹션 4.2.14, 윈 토토식의 하위 윈 토토식이 서로 다른 시간에 평가되는 다양한 상황이 있으므로 다음 원칙은"사례필요한 하위 윈 토토식만 평가합니다"철갑이 아닙니다. 예를 들어 상수1/0subexpression will usually result in a division-by-zero failure at planning time, even if it's within a사례런타임에 절대 입력되지 않는 팔입니다.

9.17.2. 합체

합체( [, ...])

합체함수는 null이 아닌 첫 번째 인수를 반환합니다. 모든 인수가 Null인 경우에만 Null이 반환됩니다. 표시하기 위해 데이터를 검색할 때 null 값을 기본값으로 대체하는 데 자주 사용됩니다. 예를 들면 다음과 같습니다.

SELECT COALESCE(설명, short_description, '(없음)') ...

이것은 반환됩니다.설명null이 아닌 경우, 그렇지 않은 경우short_descriptionnull이 아닌 경우, 그렇지 않은 경우(없음).

좋아요사례윈 토토,합체결과를 결정하는 데 필요한 인수만 평가합니다. 즉, null이 아닌 첫 번째 인수 오른쪽에 있는 인수는 평가되지 않습니다. 이 SQL 표준 함수는 다음과 유사한 기능을 제공합니다.NVL그리고IFNULL, 이는 일부 다른 데이터베이스 시스템에서 사용됩니다.

9.17.3. NULLIF

NULLIF(값1, 값2)

NULLIF함수는 다음과 같은 경우 null 값을 반환합니다.값1같음값2; 그렇지 않으면 반환됩니다.값1. 이는 의 역연산을 수행하는 데 사용될 수 있습니다.합체위에 제시된 예:

SELECT NULLIF(값, '(없음)') ...

이 예에서, 만약is(없음), null이 반환되고, 그렇지 않으면의 값이 반환됩니다.반환되었습니다.

9.17.4. 가장 훌륭함그리고최소

가장 훌륭함( [, ...])
최소( [, ...])

가장 훌륭함그리고최소함수는 윈 토토식 목록에서 가장 큰 값이나 가장 작은 값을 선택합니다. 윈 토토식은 모두 결과 유형이 되는 공통 데이터 유형으로 변환 가능해야 합니다(참조PostgreSQL : 문서 : 9.4 : 무지개 토토, Case 및 관련 구성자세한 내용). 목록의 NULL 값은 무시됩니다. 모든 윈 토토식이 NULL로 평가되는 경우에만 결과는 NULL이 됩니다.

참고가장 훌륭함그리고최소SQL 표준에는 없지만 일반적인 확장입니다. 일부 다른 데이터베이스에서는 모든 인수가 NULL인 경우에만 반환하는 것이 아니라 인수 중 하나라도 NULL인 경우 NULL을 반환하도록 합니다.