이 섹션에서는 다음에 대해 설명합니다.SQL호환 하위 토토 베이 표현식 사용 가능 에서포스트그레SQL. 모든 이 섹션에 설명된 표현식 형식은 부울을 반환합니다. (참/거짓) 결과.
존재함(하위 토토 베이)
인수존재함은 임의선택문장 또는하위 토토 베이. 하위 토토 베이는 다음과 같이 평가됩니다. 행을 반환하는지 여부를 확인합니다. 최소한 반환된다면 한 행, 결과:존재함is"사실"; 하위 토토 베이가 아니요를 반환하는 경우 행, 결과존재함is"거짓".
하위 토토 베이는 주변 변수를 참조할 수 있습니다. 쿼리는 한 번의 평가 중에 상수 역할을 합니다. 하위 토토 베이입니다.
하위 토토 베이는 일반적으로 다음과 같은 시간 동안만 실행됩니다. 적어도 하나의 행이 반환되는지 여부를 확인합니다. 완료. 측면이 있는 하위 토토 베이를 작성하는 것은 현명하지 않습니다. 효과(예: 시퀀스 함수 호출) 쪽인지 효과가 발생하면 예측할 수 없을 수도 있습니다.
결과는 행이 있는지 여부에만 의존하기 때문에 반환되었으며 해당 행의 내용이 아닌 출력 하위 토토 베이 목록은 일반적으로 중요하지 않습니다. 일반적인 코딩 관례는 모두 작성하는 것입니다존재함양식에서 테스트존재함(어디에서 1개 선택) ...). 그러나 이 규칙에는 다음과 같은 예외가 있습니다. 다음을 사용하는 하위 토토 베이교차.
이 간단한 예는 내부 조인과 같습니다.col2, 그러나 최대 하나의 출력 행을 생성합니다. 각각탭1행, 존재하는 경우에도 여러 일치탭2행:
열 1 선택 탭1에서 존재하는 곳(col2 = tab1.col2인 tab2에서 1 선택);
표현IN (하위 토토 베이)
오른쪽은 괄호로 묶인 하위 토토 베이입니다. 정확히 하나의 열을 반환합니다. 왼손 표현은 하위 토토 베이 결과의 각 행을 평가하고 비교합니다. 는 결과INis"사실"동일한 하위 토토 베이 행이 발견된 경우. 는 결과는"거짓"같은 행이 없으면 발견됨(하위 토토 베이가 no를 반환하는 경우 포함) 행).
왼쪽 표현식이 null을 산출하거나, 동일한 오른쪽 값이 없으며 적어도 하나의 값이 있습니다. 오른쪽 행은 null을 생성하며, 결과는IN구성은 false가 아닌 null이 됩니다. 이것은 부울 조합에 대한 SQL의 일반 규칙에 따라 null 값입니다.
다음과 같이존재함, 가정하는 것은 현명하지 않습니다 하위 토토 베이가 완전히 평가됩니다.
row_constructorIN (하위 토토 베이)
이 형태의 왼쪽IN은(는) 설명된 대로 행 생성자입니다.섹션 4.2.12. 오른쪽은 괄호로 묶인 하위 토토 베이입니다. 있는 열만큼 정확하게 반환해야 합니다. 왼쪽 줄의 표현. 왼쪽 표현은 하위 토토 베이의 각 행을 행별로 평가하고 비교합니다. 결과. 결과는INis"사실"동일한 하위 토토 베이 행이 발견된 경우. 는 결과는"거짓"같은 행이 없으면 발견됨(하위 토토 베이가 no를 반환하는 경우 포함) 행).
평소와 같이 행의 null 값은 다음과 같이 결합됩니다. SQL 부울 표현식의 일반적인 규칙입니다. 두 행은 모든 해당 구성원이 동일한 경우 동등한 것으로 간주됩니다. null이 아니고 같음; 해당하는 행이 있으면 행이 동일하지 않습니다. 멤버는 null이 아니고 동일하지 않습니다. 그렇지 않으면 그 결과 행 비교를 알 수 없습니다(null). 모든 행별 결과가 있는 경우 같지 않거나 null이고 하나 이상의 null이 있는 경우 결과IN널입니다.
표현다음에 없음(하위 토토 베이)
오른쪽은 괄호로 묶인 하위 토토 베이입니다. 정확히 하나의 열을 반환합니다. 왼손 표현은 하위 토토 베이 결과의 각 행을 평가하고 비교합니다. 는 결과포함되지 않음is"사실"같지 않은 하위 토토 베이 행만 발견된 경우 (하위 토토 베이가 행을 반환하지 않는 경우 포함) 는 결과는"거짓"동일한 행이 있는 경우 발견되었습니다.
왼쪽 표현식이 null을 산출하거나, 동일한 오른쪽 값이 없으며 적어도 하나의 값이 있습니다. 오른쪽 행은 null을 생성하며, 결과는포함되지 않음구성은 null이 되며 true가 아닙니다. 이것은 부울 조합에 대한 SQL의 일반 규칙에 따라 null 값입니다.
와 마찬가지로존재함, 가정하는 것은 현명하지 못해요 하위 토토 베이가 완전히 평가됩니다.
row_constructor다음에 없음(하위 토토 베이)
이 형태의 왼쪽아님 안으로는 다음에 설명된 행 생성자입니다.섹션 4.2.12. 오른쪽은 괄호로 묶인 하위 토토 베이입니다. 있는 열만큼 정확하게 반환해야 합니다. 왼쪽 줄의 표현. 왼쪽 표현은 하위 토토 베이의 각 행을 행별로 평가하고 비교합니다. 결과. 결과는포함되지 않음is"사실"동일하지 않은 하위 토토 베이 행만 있는 경우 발견되었습니다(하위 토토 베이가 no를 반환하는 경우 포함). 행). 결과는 다음과 같습니다"거짓"있는 경우 동일한 행이 발견되었습니다.
평소와 같이 행의 null 값은 다음과 같이 결합됩니다. SQL 부울 표현식의 일반적인 규칙입니다. 두 행은 모든 해당 구성원이 동일한 경우 동등한 것으로 간주됩니다. null이 아니고 같음; 해당하는 행이 있으면 행이 동일하지 않습니다. 멤버는 null이 아니고 동일하지 않습니다. 그렇지 않으면 그 결과 행 비교를 알 수 없습니다(null). 모든 행별 결과가 있는 경우 같지 않거나 null이고 하나 이상의 null이 있는 경우 결과포함되지 않음널입니다.
표현 연산자모두(하위 토토 베이) 표현 연산자일부 (하위 토토 베이)
오른쪽은 괄호로 묶인 하위 토토 베이입니다. 정확히 하나의 열을 반환합니다. 왼손 표현은 다음을 사용하여 하위 토토 베이 결과의 각 행을 평가하고 비교합니다. 주어진연산자, 반드시 부울 결과를 산출합니다. 결과는모두is"사실입니다"있는 경우 진정한 결과가 얻어집니다. 결과는 다음과 같습니다"거짓"참된 결과가 발견되지 않은 경우(포함 하위 토토 베이가 행을 반환하지 않는 경우).
일부는의 동의어입니다.모두. IN다음과 동일함= 모두.
성공이 없고 적어도 하나의 성공이 없다면 오른쪽 행은 연산자 결과에 대해 null을 생성합니다. 의 결과모두구조는 다음과 같습니다 null, false가 아닙니다. 이는 SQL의 일반적인 규칙에 따른 것입니다. null 값의 부울 조합의 경우.
와 마찬가지로존재함, 가정하는 것은 현명하지 못해요 하위 토토 베이가 완전히 평가됩니다.
row_constructor 연산자모두(하위 토토 베이) row_constructor 연산자일부 (하위 토토 베이)
이 형태의 왼쪽모두는 다음에 설명된 대로 행 생성자입니다.섹션 4.2.12. 오른쪽은 괄호로 묶인 하위 토토 베이입니다. 있는 열만큼 정확하게 반환해야 합니다. 왼쪽 줄의 표현. 왼쪽 표현은 하위 토토 베이의 각 행을 행별로 평가하고 비교합니다. 결과, 주어진 것을 사용하여연산자. 결과는모두is"사실"만약 비교는 모든 하위 토토 베이 행에 대해 true를 반환합니다. 결과는 다음과 같습니다"거짓"비교 결과가 반환되면 모든 하위 토토 베이 행에 대해 false입니다( 하위 토토 베이는 행을 반환하지 않습니다.) 비교하면 결과는 NULL입니다. 어떤 행에 대해서도 true를 반환하지 않으며 at에 대해서는 NULL을 반환합니다. 행이 하나 이상 있습니다.
참조섹션 9.21.5행별 의미에 대한 자세한 내용 비교.
표현 연산자전체 (하위 토토 베이)
오른쪽은 괄호로 묶인 하위 토토 베이입니다. 정확히 하나의 열을 반환합니다. 왼손 표현은 다음을 사용하여 하위 토토 베이 결과의 각 행을 평가하고 비교합니다. 주어진연산자, 이는 반드시 부울 결과를 산출합니다. 결과는전체is"사실"모두라면 행은 true를 산출합니다(하위 토토 베이가 반환되는 경우 포함). 행 없음). 결과는 다음과 같습니다"거짓"if 잘못된 결과가 발견되었습니다. 비교하면 결과는 NULL입니다. 어떤 행에 대해서도 false를 반환하지 않으며 at에 대해서는 NULL을 반환합니다. 행이 하나 이상 있습니다.
포함되지 않음다음과 동일함< 전체.
다음과 같이존재함, 가정하는 것은 현명하지 못해요 하위 토토 베이가 완전히 평가됩니다.
row_constructor 연산자전체 (하위 토토 베이)
이 형태의 왼쪽전체은(는) 설명된 대로 행 생성자입니다.섹션 4.2.12. 오른쪽은 괄호로 묶인 하위 토토 베이입니다. 있는 열만큼 정확하게 반환해야 합니다. 왼쪽 줄의 표현. 왼쪽 표현은 하위 토토 베이의 각 행을 행별로 평가하고 비교합니다. 결과, 주어진 것을 사용하여연산자. 결과는전체is"사실"만약 비교는 모든 하위 토토 베이 행(다음을 포함하여)에 대해 true를 반환합니다. 하위 토토 베이가 행을 반환하지 않는 경우) 결과는 다음과 같습니다"거짓"비교 결과가 반환되면 하위 토토 베이 행에 대해서는 false입니다. 다음과 같은 경우 결과는 NULL입니다. 비교는 하위 토토 베이 행에 대해 false를 반환하지 않으며 적어도 하나의 행에 대해 NULL을 반환합니다.
참조섹션 9.21.5행별 의미에 대한 자세한 내용은 비교.
row_constructor 연산자 (하위 토토 베이)
왼쪽은 다음에 설명된 대로 행 생성자입니다.섹션 4.2.12. 오른쪽은 괄호로 묶인 하위 토토 베이입니다. 있는 열만큼 정확하게 반환해야 합니다. 왼쪽 줄의 표현. 게다가 서브쿼리는 둘 이상의 행을 반환할 수 없습니다. (0개의 행을 반환하는 경우 결과는 null로 간주됩니다.) 왼쪽이 평가됩니다. 단일 하위 토토 베이 결과 행과 행 단위로 비교됩니다.
참조섹션 9.21.5행별 의미에 대한 자세한 내용은 비교.