| PostgreSQL 9.1.24 문서 | ||||
|---|---|---|---|---|
| 이전 | 위로 | 제9장. 함수 및 연산자 | PostgreSQL : 문서 : 9.1 : 배트맨 토토 함수 및 연산자 | |
이 섹션에서는 다음에 대해 설명합니다.SQL-호환 조건식 에서 사용 가능포스트그레SQL.
팁:귀하의 요구가 다음의 능력을 넘어서는 경우 이러한 조건식을 고려해 볼 수도 있습니다. 보다 토토 결과력이 뛰어난 프로그래밍으로 저장 프로시저 작성 언어.
그SQL 사례토토 결과식은 일반적인 조건부입니다. 다른 프로그래밍의 if/else 문과 유사한 토토 결과식 언어:
경우의 경우조건그때결과
     [언제 ...]
     [ELSE결과]
끝
    사례절은 어디에서나 사용할 수 있습니다. 토토 결과이 유효합니다. 각각조건다음을 반환하는 토토 결과식입니다.부울결과. 조건의 결과인 경우 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사례실행 시 절대로 입력되지 않는 팔 시간.
합체(값 [, ...])
    그합체함수 반환
    null이 아닌 첫 번째 인수입니다. Null이 반환됩니다.
    모든 인수가 null인 경우에만. 대체해서 사용하는 경우가 많습니다
    데이터를 검색할 때 null 값의 기본값
    예를 들어 디스플레이:
SELECT COALESCE(설명, short_description, '(없음)') ...
좋아요사례토토 결과,합체다음 인수만 평가합니다.
    결과를 결정하는 데 필요합니다. 즉, 다음 주장에 대한 주장이다.
    null이 아닌 첫 번째 인수의 오른쪽은 평가되지 않습니다. 이
    SQL 표준 함수는 다음과 유사한 기능을 제공합니다.NVL그리고IFNULL, 다른 데이터베이스에서 사용됨
    시스템.
NULLIF(값1, 값2)
    그NULLIF함수는 다음을 반환합니다.
    인 경우 null 값값1같음값2; 그렇지 않으면 반환됩니다.값1. 이것은 다음에 사용될 수 있습니다
    의 역연산을 수행한다.합체위에 제시된 예:
SELECT NULLIF(값, '(없음)') ...
이 예에서, 만약값is(없음), null이 반환되고, 그렇지 않으면 값값반환되었습니다.
가장 훌륭함(값 [, ...])
    
최소(값 [, ...])
    그가장 훌륭함그리고최소함수는 가장 큰 것 또는
    여러 토토 결과식 목록에서 가장 작은 값입니다. 는
    토토 결과식은 모두 공통 데이터 유형으로 변환 가능해야 합니다.
    이는 결과 유형이 됩니다(참조섹션 10.5자세한 내용). NULL
    목록의 값은 무시됩니다. 다음 경우에만 결과는 NULL이 됩니다.
    모든 토토 결과식은 NULL로 평가됩니다.
참고가장 훌륭함그리고최소SQL에 없습니다.
    표준이지만 일반적인 확장입니다. 일부 다른 데이터베이스는
    인수가 NULL인 경우에만 NULL을 반환하는 것이 아니라
    모두 NULL입니다.