이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 9.24. 하위 사설 토토 사이트 표현버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

6.15. 하위 쿼리 사설 토토

이 섹션은를 설명합니다.SQL-이용 가능한 서브 쿼리 사설 토토식 안에PostgreSQL. 모든 이 섹션에 기록 된 사설 토토 양식은 부울 반환됩니다 (참/거짓) 결과.

6.15.1. 존재

존재 (서브 쿼리)

의 주장존재is 임의select성명서, 또는SubQuery. 하위 퀘스트는 평가됩니다 행을 반환하는지 확인하십시오. 적어도 돌아 오면 하나의 행, 결과존재is"true"; 하위 쿼리가 반환되는 경우 행, 결과존재is"false".

하위 쿼리는 주변의 변수를 참조 할 수 있습니다 한 번의 평가 중 상수 역할을하는 쿼리 하위 쿼리.

하위 쿼리는 일반적으로 충분히 충분히 실행됩니다. 적어도 하나의 행이 반환되는지 여부를 결정합니다. 완성. 어떤 하위 쿼리를 쓰는 것은 현명하지 않습니다. 부작용 (예 : 호출 시퀀스 함수); whether the 부작용이 발생하거나 예측하기 어려울 수 있습니다.

결과는 행이 있는지 여부에만 의존하기 때문입니다. 반환, 해당 행의 내용이 아닌 출력 하위 쿼리 목록은 일반적으로 흥미롭지 않습니다. 일반적인 코딩 컨벤션은 모든 것을 쓰는 것입니다존재양식의 테스트존재합니다 (SELECT 1 WHERE ...). 그러나이 규칙에는 다음과 같은 예외가 있습니다 사용하는 하위 쿼리교차.

이 간단한 예제는 내부 조인과 같습니다col2그러나 최대 하나의 출력 행을 생성합니다. 각tab1행이 있더라도 다중 일치tab2행 :

tab1에서 col1을 선택하십시오
    존재하는 곳 (tab2에서 1을 선택하여 col2 = tab1.col2);

6.15.2. 안에 (스칼라 형태)

사설 토토in (value[, ...])

이 형태의 오른쪽in는 스칼라 사설 토토식의 괄호 목록입니다. 결과는입니다."True"왼쪽 사설 토토의 결과는 오른쪽과 동일합니다. 사설 토토. 이것은에 대한 속기 표기법입니다.

사설 토토=value1또는사설 토토=value2또는
...

왼쪽 사설 토토이 NULL을 생산하는 경우 또는 동일한 오른쪽 값이없고 적어도 하나가 있습니다. 오른쪽 사설 토토은 널을 생성합니다.in구성은 거짓이 아닌 null이됩니다. 이것은 안에 있습니다 부울 조합에 대한 SQL의 정상적인 규칙에 따라 널 값.

참고 :이 형태의inIS 진정으로 하위 정체 사설 토토이 아니지만 가장 좋은 것 같습니다. 하위 쿼리와 같은 장소에서 문서화in.

6.15.3. 안에 (하위 쿼리 양식)

사설 토토in (SubQuery)

이 형태의 오른쪽in는 괄호로 된 하위 쿼리이며 반환해야합니다 정확히 하나의 열. 왼쪽 사설 토토이 평가되고 하위 쿼리 결과의 각 행과 비교합니다. 의 결과inis"True"동일 하위 쿼리 행이있는 경우. 결과는입니다."false"동일한 행이없는 경우 (포함 하위 쿼리가 행을 반환하는 특별한 경우).

왼쪽 사설 토토이 널 생산되는 경우에 주목하십시오. 동일한 오른쪽 값이없고 적어도 하나가 있습니다. 오른쪽 행은 NULL을 생산합니다.in구성은 거짓이 아닌 null이됩니다. 이것은 안에 있습니다 부울 조합에 대한 SQL의 정상적인 규칙에 따라 널 값.

with존재, 그것은 현명하지 않습니다 하위 쿼리가 완전히 평가 될 것입니다.

(사설 토토[, 사설 토토 ...]) in (SubQuery)

이 형태의 오른쪽in| 괄호로 돌아와야합니다 사설 토토이있는 것만 큼 많은 열 왼쪽 목록. 왼쪽 사설 토토식이 평가됩니다 하위 쿼리 결과의 각 행과 경사로 비교됩니다. 그만큼 의 결과inis"True"동일한 하위 쿼리 행이있는 경우. 그만큼 결과는"false"동일한 행이없는 경우 발견 된 (하위 쿼리가 반환되는 특별한 경우 포함 줄).

평소와 같이 사설 토토식 또는 하위 쿼리 행의 널 값 SQL 부울 사설 토토의 정상적인 규칙에 따라 결합됩니다. 해당하는 경우 두 줄이 동일하게 간주됩니다 회원은 널이없고 평등합니다. 행은 불평등합니다 해당 구성원은 널이없고 불평등합니다. 그렇지 않으면 그 행 비교 결과는 알려지지 않았습니다 (null). 모든 행이 있다면 결과는 불평등하거나 무효이며, 적어도 하나의 널, 그런 다음의 결과inis null.

6.15.4. 아니다 (스칼라 형태)

사설 토토in (value[, ...])

이 형태의 오른쪽안에는 스칼라 사설 토토식의 괄호 목록입니다. 그만큼 결과는"True"왼쪽 인 경우 사설 토토의 결과는 모든 오른쪽에 맞지 않습니다 사설 토토. 이것은에 대한 속기 표기법입니다.

사설 토토 < value1and사설 토토 < value2및
...

왼쪽 사설 토토이 NULL을 생산하는 경우에 유의하십시오. 동일한 오른쪽 값이없고 적어도 하나가 있습니다. 오른쪽 사설 토토은 널을 생성합니다.구성은 하나가 아닌 사실이 아닙니다 순진하게 기대할 수 있습니다. 이것은 SQL의 정상에 따른 것입니다 널 값의 부울 조합에 대한 규칙.

팁 : x yIS 동등한NOT (x in y)케이스. 그러나 Null 값은 여행 할 가능성이 훨씬 높습니다. 작업 할 때의 초보자보다 작업 할 때보 다in. 최고입니다 가능하면 상태를 긍정적으로 사설 토토합니다.

6.15.5. 아니다 in (하위 쿼리 양식)

사설 토토in (SubQuery)

이 형태의 오른쪽안에는 괄호로 반환되어 정확히 반환해야합니다 하나의 열. 왼쪽 사설 토토이 평가되고 비교됩니다 하위 쿼리 결과의 각 행에. 의 결과is"True"IF 불평등 한 하위 쿼리 행만 발견됩니다 (스페셜 포함 서브 쿼리가 행을 반환하는 경우). 결과는입니다."false"동일한 행이있는 경우 설립하다.

왼쪽 사설 토토이 NULL을 생산하는 경우에 유의하십시오. 동일한 오른쪽 값이없고 적어도 하나가 있습니다. 오른쪽 행은 NULL을 생산합니다.구성은 사실이 아니라 null이됩니다. 이것은 부울 조합에 대한 SQL의 정상 규칙에 따라 널 값의

with존재, 그것은 현명하지 않습니다 하위 쿼리가 완전히 평가 될 것입니다.

(사설 토토[, 사설 토토 ...]) in (SubQuery)

이 형태의 오른쪽안에는 괄호로 반환해야합니다 왼쪽 목록에 사설 토토식이있는만큼 많은 열. 왼쪽 사설 토토식은 평가 및 비교됩니다 하위 쿼리 결과의 각 행에. 의 결과is"true"if 불평등 한 하위 쿼리 행만 발견됩니다 (스페셜 포함 서브 쿼리가 행을 반환하는 경우). 결과는입니다."false"동일한 행이있는 경우 설립하다.

평소와 같이 사설 토토식 또는 하위 쿼리 행의 널 값 SQL 부울 사설 토토의 정상적인 규칙에 따라 결합됩니다. 해당하는 경우 두 줄이 동일하게 간주됩니다 회원은 널이없고 평등합니다. 행은 불평등합니다 해당 구성원은 널이없고 불평등합니다. 그렇지 않으면 그 행 비교 결과는 알려지지 않았습니다 (null). 모든 행이 있다면 결과는 불평등하거나 무효이며, 적어도 하나의 널, 그런 다음의 결과is null.

6.15.6. 어떤/일부

사설 토토 운영자Any (SubQuery)사설 토토 운영자일부 (SubQuery)

이 형태의 오른쪽Any는 괄호로 돌아와야합니다 정확히 하나의 열. 왼쪽 사설 토토이 평가되고 주어진 퀘스트를 사용하여 하위 쿼리 결과의 각 행과 비교하여운영자부울 결과. 의 결과anyis"True"실제 결과가있는 경우 얻었다. 결과는입니다."false"if 진정한 결과는 발견되지 않습니다 (특별한 경우 포함 하위 쿼리는 행을 반환합니다).

일부의 동의어입니다Any. in= Any.

성공이없고 적어도 하나가있는 경우 오른쪽 행은 연산자의 결과에 대해 NULL을 얻습니다 의 결과Any구성이 될 것입니다 널, 거짓이 아닙니다. 이것은 SQL의 정상 규칙에 따른 것입니다 널 값의 부울 조합.

with존재, 그것은 현명하지 않습니다 하위 쿼리가 완전히 평가 될 것입니다.

(사설 토토[, 사설 토토 ...])운영자any (SubQuery)
(사설 토토23144_23148, 사설 토토 ...])운영자일부 (SubQuery)

이 형태의 오른쪽Any는 괄호로 된 서브 쿼리이며 반환해야합니다 사설 토토이있는 것만 큼 많은 열 왼쪽 목록. 왼쪽 사설 토토식이 평가됩니다 하위 쿼리 결과의 각 행과 비교하여 주어진운영자. 현재, 유일한=and<운영자가 연속으로 허용됩니다Any쿼리. 의 결과anyis"True"동일하거나 불평등 한 행이 각각 발견됩니다. 결과는입니다."false"그러한 행이없는 경우 (하위 쿼리가 반환되는 특별한 경우 포함 줄).

평소와 같이 사설 토토식 또는 하위 쿼리 행의 널 값 SQL 부울 사설 토토의 정상적인 규칙에 따라 결합됩니다. 해당하는 경우 두 줄이 동일하게 간주됩니다 회원은 널이없고 평등합니다. 행은 불평등합니다 해당 구성원은 널이없고 불평등합니다. 그렇지 않으면 그 행 비교 결과는 알려지지 않았습니다 (null). 있는 경우 최소 하나의 null 행 결과, 그 다음 결과any거짓일 수 없습니다. 진실하거나 무효가 될 것입니다.

6.15.7. 모두

사설 토토 운영자ALL (SubQuery)

이 형태의 오른쪽all는 괄호로 돌아와야합니다 정확히 하나의 열. 왼쪽 사설 토토이 평가되고 주어진 퀘스트를 사용하여 하위 쿼리 결과의 각 행과 비교하여운영자부울 결과. 의 결과allis"True"모든 행이 참을 수 있다면 사실 (하위 쿼리가 반환되는 특별한 경우 포함 줄). 결과는입니다."false"거짓 결과가 발견됩니다.

< all.

실패가 없지만 적어도 하나가있는 경우 오른쪽 행은 연산자의 결과에 대해 NULL을 얻습니다 의 결과all구성이 될 것입니다 널, 사실이 아닙니다. 이것은 SQL의 정상 규칙에 따른 것입니다 널 값의 부울 조합.

with존재하위 쿼리가 완전히 평가 될 것입니다.

(사설 토토[, 사설 토토 ...])운영자ALL (서브 쿼리)

이 형태의 오른쪽all는 괄호로 반환해야합니다 사설 토토이있는 것만 큼 많은 열 왼쪽 목록. 왼쪽 사설 토토식이 평가됩니다 하위 쿼리 결과의 각 행과 비교하여 주어진운영자. 현재, 유일한=and<운영자가 연속으로 허용됩니다all쿼리. 의 결과allis"True"모두 서브 쿼리 행은 각각 동일하거나 불평등합니다 (포함 하위 쿼리가 행을 반환하는 특별한 경우). 결과는입니다."false"행이있는 경우 각각 불평등하거나 평등합니다.

평소와 같이 사설 토토식 또는 하위 쿼리 행의 널 값 SQL 부울 사설 토토의 정상적인 규칙에 따라 결합됩니다. 해당하는 경우 두 줄이 동일하게 간주됩니다 회원은 널이없고 평등합니다. 행은 불평등합니다 해당 구성원은 널이없고 불평등합니다. 그렇지 않으면 그 행 비교 결과는 알려지지 않았습니다 (null). 있는 경우 최소 하나의 null 행 결과, 그 다음 결과all사실이 될 수 없습니다. 거짓이거나 널이 될 것입니다.

6.15.8. Row-wise 비교

(사설 토토[, 사설 토토 ...])운영자(SubQuery)
(사설 토토[, 사설 토토 ...])운영자(사설 토토[, 사설 토토 ...])

왼쪽은 스칼라 사설 토토식 목록입니다. 그만큼 오른쪽은 스칼라 사설 토토 목록 일 수 있습니다. 같은 길이 또는 괄호가있는 서브 쿼리, 반환해야합니다. 사설 토토이있는 것만 큼 많은 열 왼쪽. 또한 하위 쿼리는 더 이상 반환 할 수 없습니다 한 줄보다. (0 행을 반환하면 결과가 왼쪽이 평가되고 Row-Wise를 비교합니다. 단일 하위 쿼리 결과 행 또는 오른쪽으로 사설 토토 목록. 현재, 유일한=and<운영자가 허용됩니다 행이있는 비교. 결과는입니다."true"두 행이 같거나 불평등 한 경우, 각기.

평소와 같이 사설 토토식 또는 하위 쿼리 행의 널 값 SQL 부울 사설 토토의 정상적인 규칙에 따라 결합됩니다. 해당하는 경우 두 줄이 동일하게 간주됩니다 회원은 널이없고 평등합니다. 행은 불평등합니다 해당 구성원은 널이없고 불평등합니다. 그렇지 않으면 행 비교 결과는 알려지지 않았다 (null).