9.18. 조건식#

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

귀하의 요구 사항이 이러한 조건식의 기능을 넘어서는 경우, 보다 메이저 토토 사이트력이 풍부한 프로그래밍 언어로 서버 측 함수를 작성하는 것을 고려할 수 있습니다.

참고

하지만합체, 가장 훌륭함최소구문적으로 함수와 유사하며 일반 함수가 아니므로 명시적으로 사용할 수 없습니다.VARIADIC배열 인수.

9.18.1. 사례 #

SQL 사례expression은 다른 프로그래밍 언어의 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 사례expression은 결과를 결정하는 데 필요하지 않은 하위 메이저 토토 사이트식을 평가하지 않습니다. 예를 들어, 다음은 0으로 나누기 실패를 방지할 수 있는 방법입니다.

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

참고

설명에 따라섹션 4.2.14, 메이저 토토 사이트식의 하위 메이저 토토 사이트식이 서로 다른 시간에 평가되는 다양한 상황이 있으므로 다음 원칙은사례필요한 하위 메이저 토토 사이트식만 평가철갑이 아닙니다. 예를 들어 상수1/0하위 메이저 토토 사이트식은 일반적으로 a 내에 있더라도 계획 시 0으로 나누기 실패를 초래합니다.사례런타임에 절대 입력되지 않는 암입니다.

9.18.2. 합체 #

합체( [, ...])

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

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

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

인수는 모두 결과 유형이 되는 공통 데이터 유형으로 변환 가능해야 합니다(참조사설 토토 PostgreSQL : 문서 : 17 : 10.5. 연합, 사례 및 관련 구성자세한 내용은).

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

9.18.3. NULLIF #

NULLIF(값1, 값2)

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

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

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

두 인수는 비슷한 유형이어야 합니다. 구체적으로 말하자면, 귀하가 작성한 것처럼 정확하게 비교됩니다.값1 = 값2그래서 적합한 것이 있어야 합니다.=연산자를 사용할 수 있습니다.

결과는 첫 번째 인수와 동일한 유형이지만 미묘한 차이가 있습니다. 실제로 반환되는 것은 묵시적인의 첫 번째 인수입니다.=연산자이며 경우에 따라 두 번째 인수 유형과 일치하도록 승격됩니다. 예를 들어,NULLIF(1, 2.2)수율숫자, 없기 때문입니다정수 = 숫자연산자, 전용숫자 = 숫자.

9.18.4. 가장 훌륭함그리고최소 #

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

가장 훌륭함그리고최소함수는 메이저 토토 사이트식 목록에서 가장 큰 값이나 가장 작은 값을 선택합니다. 메이저 토토 사이트식은 모두 결과 유형이 되는 공통 데이터 유형으로 변환 가능해야 합니다(참조사설 토토 PostgreSQL : 문서 : 17 : 10.5. 연합, 사례 및 관련 구성자세한 내용은).

인수 목록의 NULL 값은 무시됩니다. 모든 메이저 토토 사이트식이 NULL로 평가되는 경우에만 결과는 NULL이 됩니다. (이것은 SQL 표준과의 차이입니다. 표준에 따르면 인수가 NULL이면 반환 값은 NULL입니다. 일부 다른 데이터베이스는 이렇게 동작합니다.)

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.