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

9.17. 조건부 와이즈 토토

이 섹션은를 설명합니다.SQL-완성 된 조건부 와이즈 토토식 안에postgresql.

팁 :귀하의 요구 가이 기능을 뛰어 넘는 경우 조건부 와이즈 토토, 당신은 a를 쓰는 것을 고려할 수 있습니다 보다 와이즈 토토적인 프로그래밍 언어로 저장된 절차.

9.17.1. case

theSQL 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, A,
       CASE A가 1 일 때 '하나'
              2 시절 '2'
              다른 '기타'
       끝
    시험에서;

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

aCASE와이즈 토토은 평가하지 않습니다 결과를 결정하기 위해 필요하지 않은 하위 와이즈 토토. 을 위한 예를 들어, 이것은 영역별로 피할 수있는 방법입니다. 실패:

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

참고 :설명대로섹션 4.2.14, AN의 하위 와이즈 토토이 다양한 상황이 있습니다 와이즈 토토은 다른 시간에 평가되므로 원리 저것"CASE평가 필요한 하위 와이즈 토토 "는 철분이 없습니다. 예를 들어 상수1/0subexpression은 일반적으로됩니다 계획 시간에 부서별 실패를 초래합니다. A 내에서CASE결코 그렇지 않을 팔 런 타임에 입력.

9.17.2. Coalesce

Coalesce(value[, ...])

theCoalesce함수를 반환합니다 그 주장의 첫 번째 논쟁은 무효가되지 않습니다. NULL은 경우에만 반환됩니다 모든 인수는 무효입니다. 종종 기본값을 대체하는 데 사용됩니다 display를 위해 데이터를 검색 할 때 null 값의 값 예:

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

이것은 반환설명그렇지 않은 경우 null, 그렇지 않으면short_descriptionNULL, 그렇지 않으면(없음).

좋아요CASE와이즈 토토,Coalesce인수 만 평가합니다 결과를 결정하는 데 필요합니다. 즉, 오른쪽에 대한 논쟁입니다 첫 번째가 아닌 인수는 평가되지 않습니다. 이 SQL 표준 함수는와 유사한 기능을 제공합니다.NVLandifnull, 다른 데이터베이스 시스템에서 사용됩니다.

9.17.3. Nullif

Nullif(value1, value2)

theNullif함수는 널을 반환합니다 값 ifvalue1equalsvalue2; 그렇지 않으면 반환value1. 이것은 그것을 수행하는 데 사용될 수 있습니다 의 역 작동Coalesce위에 주어진 예 :

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

이 예에서 ifvalueis(없음), null이 반환됩니다. 그렇지 않으면value반환됩니다.

9.17.4. 가장 큰and최소

가장 큰(value[, ...])
최소(value[, ...])

the가장 큰and최소함수는 가장 크거나 가장 작은 것을 선택하십시오 와이즈 토토식의 목록에서 값. 와이즈 토토 모두 공통 데이터 유형으로 전환 할 수 있어야합니다. 결과 유형 (참조PostgreSQL : 문서 : 9.3 : 범퍼카 토토, Case 및 관련 구성자세한 내용). 목록의 널 값은 무시됩니다. 그만큼 모든 와이즈 토토이 평가하는 경우에만 결과는 무효입니다. 널.

참고가장 큰and최소SQL 표준에 있지 않습니다. 그러나 일반적인 확장입니다. 다른 데이터베이스는 반환합니다 어떤 논쟁이 있으면 널 널.