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

9.16. 조건부 토토 결과

이 섹션은를 설명합니다.SQL-완성 된 조건부 토토 결과 사용 가능PostgreSQL.

팁 :요구 사항을 뛰어 넘는 경우 이러한 조건부 토토 결과은 고려할 수 있습니다 보다 토토 결과적인 프로그래밍으로 저장된 절차를 작성합니다 언어.

9.16.1. case

SQL CASE토토 결과식은 일반적인 조건입니다 다른 프로그래밍의 IF/Else 문과 유사한 토토 결과 언어 :

케이스조건the결과[언제 ...]
     [else결과]
끝

CASE조항은 어디에서나 사용할 수 있습니다 토토 결과이 유효합니다. 각조건a를 반환하는 토토 결과입니다.부울결과. 조건의 결과 인 경우 사실,의 가치는CASE토토 결과은결과조건을 따르고 나머지는CASE토토 결과이 처리되지 않았습니다. 만약 조건의 결과는 사실이 아닙니다. 후속언제조항은 같은 방식으로 검사됩니다. 만약에 아니요언제 조건True의 값을 생산합니다CASE토토 결과은결과else절. 인 경우else절은 생략되었습니다 그리고 조건은 사실이 아닙니다. 결과는 null입니다.

예 :

test에서 선택 *;

 에이
---
 1
 2
 3

A,
       a = 1 그런 다음 'one'인 경우
            a = 2 때 '2'
            다른 '기타'
       끝
    시험에서;

 A | 사례
---+------
 1 | 하나
 2 | 둘
 3 | 다른

모든 데이터 유형결과토토 결과식은 전환 할 수 있어야합니다 단일 출력 유형. 보다섹션 10.5더 많은 것 세부.

a"Simple"형태CASE토토 결과의 변형입니다 위의 일반 양식 :

CASE토토 결과언제valuethe결과[언제 ...]
    [else결과]
끝

첫 번째토토 결과is 계산 된 다음 각에 비해value토토 결과언제토토 결과가 발견 될 때까지 조항 그것. 일치하지 않으면결과else절 (또는 널 값)이 반환됩니다. 이것은와 비슷합니다.스위치C. 진술

위의 예는 단순한 것을 사용하여 작성할 수 있습니다CASE구문 :

선택 A,
       CASE A가 1 일 때 '하나'
              2 시절 '2'
              다른 '기타'
       끝
    시험에서;

 A | 사례
---+------
 1 | 하나
 2 | 둘
 3 | 다른

aCASE토토 결과이 평가되지 않습니다 결과를 결정하기 위해 필요하지 않은 모든 하위 토토 결과. 예를 들어, 이것은 피하는 가능한 방법입니다. 부서별 실패 :

선택 ... x < 0 일 때의 경우 y/x 1.5 else false end;

참고 :설명대로섹션 4.2.14, 다양한 상황이 있습니다 발현의 하위 토토 결과은 상이한 것으로 평가된다 시간, 그 원칙이"CASE평가 만 평가합니다 필요한 하위 토토 결과 "는 ironclad가 아닙니다. 을 위한 예제 상수1/0하위 토토 결과은 일반적으로 부서별로 발생합니다 a 내에 있어도 계획 시간에 실패CASE실행 중에 들어 가지 않는 암 시간.

9.16.2. Coalesce

Coalesce(value[, ...])

the​​Coalesce함수 리턴 널이 아닌 첫 번째 주장. NULL이 반환됩니다 모든 인수가 무인 상태 인 경우에만. 종종 대체에 사용됩니다 데이터를 검색 할 때 NULL 값의 기본값 예를 들면 표시 :

Coalesce 선택 (설명, Short_description, '(없음)'...

aCASE토토 결과,Coalesce그 주장 만 평가합니다 결과를 결정하기 위해 필요합니다. 즉,에 대한 논쟁입니다 첫 번째가 아닌 논증의 권리는 평가되지 않습니다. 이것 SQL 표준 기능은와 유사한 기능을 제공합니다.NVLifnull17250_17304

9.16.3. Nullif

Nullif(value1, value2)

theNullif함수는 a IF 님이 null 값value1equalsvalue2; 그렇지 않으면 반환value1. 이것은 사용될 수 있습니다 의 역 작동 수행Coalesce위에 주어진 예 :

선택 Nullif (value, '(없음)'... 선택

이 예에서 ifvalueis(없음), null이 반환됩니다 의 값value반품.

9.16.4. 가장 큰and최소

Greatest(value[, ...])
최소(value[, ...])

the가장 큰and최소함수를 선택하십시오 토토 결과식 목록에서 가장 작은 값. 그만큼 토토 결과식은 모두 공통 데이터 유형으로 전환 할 수 있어야하며 결과의 유형이 될 것입니다 (참조섹션 10.5자세한 내용). 널 목록의 값은 무시됩니다. 결과는 경우에만 무효입니다 모든 토토 결과은 NULL로 평가합니다.

참고Greatestand최소SQL에 없습니다 표준이지만 일반적인 확장입니다. 다른 데이터베이스가 만듭니다 어떤 주장이 있으면 널 돌리면서 모두 null입니다.