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

9.17. 조건식

이 섹션에서는 다음에 대해 설명합니다.SQL호환 조건식 사용 가능 에서포스트그레SQL.

팁:귀하의 요구가 이 기능의 범위를 넘어서는 경우 조건식을 작성하는 것이 좋습니다. 좀 더 와이즈 토토력이 풍부한 프로그래밍 언어로 된 저장 프로시저입니다.

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 | 다른

모든 데이터 유형결과식은 단일 출력 유형으로 변환 가능해야 합니다. 참조섹션 10.5더 보기 세부사항.

이 있습니다"간단함"형태사례와이즈 토토식은 다음의 변형입니다. 위의 일반 형식:

사례와이즈 토토언제그때결과
    [언제 ...]
    [ELSE결과]
끝

첫 번째와이즈 토토이 계산한 다음 각각의 값과 비교합니다.의 와이즈 토토식언제절과 동일한 것이 발견될 때까지 절입니다. 일치하는 항목이 없으면결과ELSE절(또는 null 값)은 다음과 같습니다. 돌아왔다. 이는 다음과 유사합니다.스위치C의 진술

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

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

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

A 사례와이즈 토토식은 어떤 것도 평가하지 않습니다. 결과를 결정하는 데 필요하지 않은 하위 와이즈 토토식. 에 대한 예를 들어, 이것은 0으로 나누기를 피하는 가능한 방법입니다. 실패:

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

참고:설명된 대로섹션 4.2.14, 의 하위 와이즈 토토식이 사용되는 다양한 상황이 있습니다. 와이즈 토토은 서로 다른 시점에 평가되므로 원칙은 다음과 같습니다. 그"사례평가하다 필요한 하위 와이즈 토토식만"철갑이 아닙니다. 예를 들어 상수1/0하위 와이즈 토토식은 일반적으로 계획할 때 0으로 나누기 실패가 발생합니다. a 이내사례절대 그럴 수 없는 팔 런타임에 입력되었습니다.

9.17.2. 합체

합체( [, ...])

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

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

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

좋아요사례와이즈 토토,합체다음 인수만 평가합니다. 결과를 결정하는 데 필요합니다. 즉, 오른쪽에 있는 인수는 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.3 : 범퍼카 토토, Case 및 관련 구성자세한 내용). 목록의 NULL 값은 무시됩니다. 는 모든 와이즈 토토식이 다음과 같이 평가되는 경우에만 결과는 NULL이 됩니다. NULL.

참고가장 훌륭함그리고최소SQL 표준에 포함되어 있지 않습니다. 그러나 일반적인 확장입니다. 일부 다른 데이터베이스로 인해 반환됩니다. 모든 인수가 NULL인 경우가 아니라 인수 중 하나라도 NULL인 경우 NULL입니다. NULL.