이 섹션은를 설명합니다.SQL-Compliant subquery expressions 이용 가능 안에PostgreSQL. 모든 이 섹션에 기록 된 표현 양식은 부울 반환됩니다 (참/거짓) 결과.
존재 (SubQuery)
의 주장존재is 임의selectStatement 또는SubQuery. 하위 퀘스트는 평가됩니다 행을 반환하는지 확인하십시오. 적어도 돌아 오면 하나의 행, 결과존재is"True"; 하위 사설 토토가 반환되는 경우 행, 결과존재is"false".
하위 사설 토토는 주변의 변수를 참조 할 수 있습니다 한 번의 평가 중 상수 역할을하는 사설 토토 하위 사설 토토.
하위 사설 토토는 일반적으로 충분히 충분히 실행됩니다. 적어도 하나의 행이 반환되는지 여부를 결정합니다. 완성. 어떤 하위 사설 토토를 쓰는 것은 현명하지 않습니다. 부작용 (예 : 호출 시퀀스 함수); whether the 부작용이 발생하거나 예측하기 어려울 수 있습니다.
결과는 행이 있는지 여부에 따라 달라집니다. 반환, 해당 행의 내용이 아닌 출력 하위 사설 토토 목록은 일반적으로 흥미롭지 않습니다. 일반적인 코딩 컨벤션은 모든 것을 쓰는 것입니다존재양식의 테스트존재합니다 (select 1 어디서 ...). 그러나이 규칙에는 다음과 같은 예외가 있습니다 사용하는 하위 쿼리Intersect.
이 간단한 예제는 내부 조인과 같습니다col2, 그러나 최대 하나의 출력 행을 생성합니다. 각tab1행이 있더라도 다중 일치tab2행 :
tab1에서 col1을 선택하십시오 존재하는 곳 (tab2에서 1을 선택하여 col2 = tab1.col2);
표현in (SubQuery)
오른쪽은 괄호로 된 하위 쿼리입니다 정확히 하나의 열을 반환합니다. 왼쪽 표현은입니다 하위 퀘스트 결과의 각 행과 평가 및 비교. 그만큼 의 결과inis"True"동일한 하위 사설 토토 행이있는 경우. 그만큼 결과는"false"동일한 행이없는 경우 발견 된 (하위 사설 토토가 반환되는 특별한 경우 포함 줄).
왼쪽 표현이 NULL을 생산하는 경우에 유의하십시오. 동일한 오른쪽 값이없고 적어도 하나가 있습니다. 오른쪽 행은 NULL을 생산합니다.in구성은 false가 아닌 null이됩니다. 이것은 안에 있습니다 부울 조합에 대한 SQL의 정상적인 규칙에 따라 널 값.
with존재, 가정은 현명하지 않습니다 하위 사설 토토가 완전히 평가 될 것입니다.
(표현[, 표현 ...]) in (SubQuery)
이 형태의 오른쪽in| 괄호로 돌아와야합니다 표현이있는 것만 큼 많은 열 왼쪽 목록. 왼쪽 표현식이 평가됩니다 하위 쿼리 결과의 각 행과 경사로 비교됩니다. 그만큼 의 결과inis"True"동일 하위 사설 토토 행이있는 경우. 그만큼 결과는"false"동일한 행이없는 경우 발견 된 (하위 사설 토토가 반환되는 특별한 경우 포함 줄).
평소와 같이 행의 널 값은 SQL 부울 표현의 정상적인 규칙. 두 줄입니다 모든 해당 회원이라면 동등한 것으로 간주됩니다 무감각하고 평등; 해당하는 경우 행이 불평등합니다 회원은 무감각하고 불평등합니다. 그렇지 않으면 그 결과 행 비교는 알려지지 않았습니다 (null). 모든 행 결과가있는 경우 적어도 하나의 null이있는 불평등하거나 null이면 결과 의inis null.
표현in (SubQuery)
오른쪽은 괄호로 된 하위 쿼리입니다 정확히 하나의 열을 반환합니다. 왼쪽 표현은입니다 하위 퀘스트 결과의 각 행과 평가 및 비교. 그만큼 의 결과is"True"불평등 한 서브 사설 토토 행만 발견하면 (하위 사설 토토가 반환되는 특별한 경우 포함 줄). 결과는입니다."false"동일한 행이 발견되었습니다.
왼쪽 표현이 NULL을 생산하는 경우에 유의하십시오. 동일한 오른쪽 값이없고 적어도 하나가 있습니다. 오른쪽 행은 NULL을 생산합니다.구성은 사실이 아니라 무효입니다. 이것은 부울 조합에 대한 SQL의 정상 규칙에 따라 널 값의
with존재, 그것은 현명하지 않습니다 하위 사설 토토가 완전히 평가 될 것입니다.
(표현[, 표현 ...]) in (SubQuery)
이 형태의 오른쪽안에는 괄호로 돌아가는 서브 사설 토토이며 정확히 반환해야합니다 왼쪽 목록에 표현식이있는만큼 많은 열. 왼쪽 표현식은 평가 및 비교됩니다 하위 쿼리 결과의 각 행에. 의 결과is"True"if 불평등 한 하위 사설 토토 행만 발견됩니다 (스페셜 포함 서브 사설 토토가 행을 반환하는 경우). 결과는입니다."false"동일한 행이있는 경우 설립하다.
평소와 같이 행의 널 값은 SQL 부울 표현의 정상적인 규칙. 두 줄입니다 모든 해당 회원이라면 동등한 것으로 간주됩니다 무감각하고 평등; 해당하는 경우 행이 불평등합니다 회원은 무감각하고 불평등합니다. 그렇지 않으면 그 결과 행 비교는 알려지지 않았습니다 (null). 모든 행 결과가있는 경우 적어도 하나의 null이있는 불평등하거나 null이면 결과 의is null.
표현 운영자Any (Subquery)표현 운영자일부 (SubQuery)
오른쪽은 괄호로 된 하위 쿼리입니다 정확히 하나의 열을 반환합니다. 왼쪽 표현은입니다 사용하는 하위 쿼리 결과의 각 행과 평가 및 비교 주어진운영자부울 결과를 낳습니다. 의 결과anyis"True"진정한 결과가 얻어집니다. 결과는입니다."false"진정한 결과가없는 경우 (포함 하위 퀴어가 행을 반환하는 특별한 경우).
일부동의어any. in= Any.
성공이없고 적어도 하나가 있다면 오른쪽 행은 연산자의 결과에 대해 NULL을 얻습니다 의 결과any구성이 될 것입니다 널, 거짓이 아닙니다. 이것은 SQL의 정상 규칙에 따른 것입니다 널 값의 부울 조합.
with존재, 그것은 현명하지 않습니다 하위 사설 토토가 완전히 평가 될 것입니다.
(표현[, 표현 ...])운영자any (SubQuery) (표현[, 표현 ...])운영자일부 (서브 사설 토토)
이 형태의 오른쪽any| 괄호로 돌아와야합니다 표현이있는 것만 큼 많은 열 왼쪽 목록. 왼쪽 표현식이 평가됩니다 하위 쿼리 결과의 각 행과 비교하여 주어진운영자. 현재, 유일한=and<운영자가 연속으로 허용됩니다any구성. 의 결과Anyis"True"동일하거나 불평등 한 행이 각각 발견됩니다. 결과는입니다."false"그러한 행이없는 경우 (하위 사설 토토가 반환되는 특별한 경우 포함 줄).
평소와 같이 행의 널 값은 SQL 부울 표현의 정상적인 규칙. 두 줄입니다 모든 해당 회원이라면 동등한 것으로 간주됩니다 무감각하고 평등; 해당하는 경우 행이 불평등합니다 회원은 무감각하고 불평등합니다. 그렇지 않으면 그 결과 행 비교는 알려지지 않았습니다 (null). 널 하나 이상이있는 경우 행 결과, 결과Any거짓일 수 없습니다. 진실하거나 무효가 될 것입니다.
표현 운영자ALL (SubQuery)
오른쪽은 괄호로 된 하위 쿼리입니다 정확히 하나의 열을 반환합니다. 왼쪽 표현은입니다 사용하는 하위 쿼리 결과의 각 행과 평가 및 비교 주어진운영자부울 결과를 낳습니다. 의 결과allis"True"모두 행은 사실을 산출합니다 (하위 사설 토토가있는 특별한 경우 포함 줄을 반환합니다). 결과는입니다."false"잘못된 결과가 발견 된 경우.
와 동일합니다< all.
실패가 없지만 하나 이상 오른쪽 행은 연산자의 결과에 대해 NULL을 얻습니다 의 결과all구성이 될 것입니다 널, 사실이 아닙니다. 이것은 SQL의 정상 규칙에 따른 것입니다 널 값의 부울 조합.
with존재하위 사설 토토가 완전히 평가 될 것입니다.
(표현[, 표현 ...])운영자ALL (서브 사설 토토)
이 형태의 오른쪽all는 괄호로 반환해야합니다 표현이있는 것만 큼 많은 열 왼쪽 목록. 왼쪽 표현식이 평가됩니다 하위 쿼리 결과의 각 행과 비교하여 주어진운영자. 현재, 유일한=and<운영자가 연속으로 허용됩니다all사설 토토. 의 결과allis"True"모두 서브 사설 토토 행은 각각 동일하거나 불평등합니다 (포함 하위 쿼리가 행을 반환하는 특별한 경우). 결과는입니다."false"행이있는 경우 각각 불평등하거나 평등합니다.
평소와 같이 행의 널 값은 SQL 부울 표현의 정상적인 규칙. 두 줄입니다 모든 해당 회원이라면 동등한 것으로 간주됩니다 무감각하고 평등; 해당하는 경우 행이 불평등합니다 회원은 무감각하고 불평등합니다. 그렇지 않으면 그 결과 행 비교는 알려지지 않았습니다 (null). 널 하나 이상이있는 경우 행 결과, 결과all사실이 될 수 없습니다. 거짓이거나 널이 될 것입니다.
(표현[, 표현 ...])운영자(SubQuery)
왼쪽은 스칼라 표현 목록입니다. 그만큼 오른쪽은 괄호로 된 하위 쿼리이며 반환해야합니다 표현이있는 것만 큼 많은 열 왼쪽. 또한 하위 쿼리는 더 이상 반환 할 수 없습니다 한 줄보다. (0 행을 반환하면 결과가 왼쪽이 평가되고 Row-Wise를 비교합니다. 단일 하위 쿼리 결과 행에. 현재, 유일한=및<운영자는 연속 비교에서 허용됩니다. 결과는입니다."True"두 행이 같거나 동일하거나 각각 불균형.
평소와 같이 행의 널 값은 SQL 부울 표현의 정상적인 규칙. 두 줄입니다 모든 해당 회원이라면 동등한 것으로 간주됩니다 무감각하고 평등; 해당하는 경우 행이 불평등합니다 회원은 무감각하고 불평등합니다. 그렇지 않으면 행 비교가 알려지지 않았다 (null).