이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 9.25. 행 및 스포츠 토토 결과 사설 토토버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.21. 행 및 배열 비교

이 섹션에서는 몇 가지 특수 구성을 설명합니다 값 그룹간에 다중 비교를합니다. 이 형태 이전의 하위 쿼리 형태와 구문 적으로 관련이 있습니다. 섹션이지만 하위 쿼리가 포함되지 않습니다. 스포츠 토토 결과과 관련된 양식 하위 표현은postgresql확장; 나머지는SQL-공동. 모든 표현식 형태 이 섹션에 기록 된 반환 부울 ​​(True/False) 결과.

9.21.1. in

표현in (value[, ...])

오른쪽은 괄호로 된 스칼라 목록입니다 표현. 결과는입니다."True"if 왼쪽 표현의 결과는 오른쪽 표현. 이것은에 대한 속기 표기법입니다.

표현=value1또는표현=value2또는
...

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

9.21.2.

표현value[, ...])

오른쪽은 괄호로 된 스칼라 목록입니다 표현. 결과는입니다."True"if 왼쪽 표현의 결과는 모든 오른쪽 표현. 이것은에 대한 속기 표기법입니다.

표현 < value1and표현 < value2및
...

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

팁 : x in yis 동등한NOT (x in y)케이스. 그러나 Null 값은 여행 할 가능성이 훨씬 높습니다. 작업 할 때의 초보자보다 작업 할 때보 다in. 그것은 가능하면 상태를 긍정적으로 표현하는 것이 가장 좋습니다.

9.21.3. Any/일부(스포츠 토토 결과)

표현 운영자any (배열 표현)표현 연산자일부 (배열 표현)

오른쪽은 괄호화 된 표현입니다 배열 값을 산출해야합니다. 왼쪽 표현은입니다 평가하고 배열의 각 요소를 사용하여 주어진운영자부울 결과를 낳습니다. 의 결과anyis"True"진정한 결과가 얻어집니다. 결과는입니다."false"진정한 결과가없는 경우 (포함 스포츠 토토 결과에 요소가없는 경우).

배열 표현식이 널 배열을 생성하면 결과는anynull이 될 것입니다. 왼쪽이라면 표현식은 널을 생성하고의 결과를 얻습니다.any는 일반적으로 무효입니다 (비 스트릭은 비계입니다 비교 연산자는 다른 결과를 얻을 수 있습니다). 또한 오른쪽 배열에 Null 요소가 포함되어 있고 진정한 비교 결과가 얻어지고 결과는any는 거짓이 아닌 null이됩니다 (다시, a 엄격한 비교 연산자). 이것은 SQL에 따른 것입니다 널 값의 부울 조합에 대한 정상적인 규칙.

일부동의어Any.

9.21.4. all(스포츠 토토 결과)

표현 운영자ALL (배열 표현)

오른쪽은 괄호로 된 표현입니다 배열 값을 산출해야합니다. 왼쪽 표현은입니다 평가하고 배열의 각 요소를 사용하여 주어진운영자부울 결과를 낳습니다. 의 결과allis"True"모두 비교는 사실을 산출합니다 (스포츠 토토 결과이있는 경우 포함 제로 요소). 결과는입니다."false"잘못된 결과가 발견 된 경우.

배열 표현식이 널 배열을 생성하면 결과는allnull이 될 것입니다. 왼쪽이라면 표현식은 널을 생성하고의 결과를 얻습니다.all| 일반적으로 무효입니다 비교 연산자는 다른 결과를 얻을 수 있습니다). 또한 오른쪽 배열에 Null 요소가 포함되어 있고 허위 비교 결과가 얻어지고 결과는all는 사실이 아니라 null이 될 것입니다 (다시, a 엄격한 비교 연산자). 이것은 SQL에 따른 것입니다 널 값의 부울 조합에 대한 정상적인 규칙.

9.21.5. Row-wise 비교

row_constructor 운영자 row_constructor

각 측면은에 설명 된대로 행 생성자입니다.섹션 4.2.12. 두 행 값은 동일한 수의 것을 가져야합니다. 전지. 각 측면은 평가되며 경향별로 비교됩니다. 행 비교는에 허용됩니다운영자is=, <, <, <=, 또는 =의미 중 하나와 유사한 의미. (구체적으로, 운영자 B- 트리의 구성원 인 경우 행 비교 연산자가 될 수 있습니다. 운영자 클래스, 또는의 부정관입니다.=B- 트리 연산자 클래스의 구성원)

the=and<케이스는 약간 다르게 작동합니다 다른 것들. 두 줄은 모든 경우 동일하게 간주됩니다 해당 구성원은 널이 아니고 동일합니다. 행은입니다 해당 구성원이 무감각하고 불평등 한 경우에는 불평등합니다. 그렇지 않으면 행 비교 결과가 알려져 있지 않습니다 (null).

<, <=, and =케이스, 행 요소는입니다 왼쪽에서 오른쪽으로 비교하여 불평등하거나 널리 나가 자마자 중지 요소 쌍이 발견됩니다. 이 요소 중 하나 인 경우 NULL, 행 비교의 결과는 알려지지 않았다 (NULL). 그렇지 않으면이 요소 쌍의 비교가 결정됩니다 결과. 예를 들어,행 (1,2, null) < 행 (1,3,0)세 번째 쌍 때문에 null이 아닌 true를 생산합니다 요소의 고려되지 않습니다.

참고 :이전PostgreSQL8.2,<, <=, and =사례는 SQL 당 처리되지 않았습니다 사양. 비교와 같은 비교행 (a, b) <row (c, d)a <c 및 b <d올바른 동작은에 해당합니다.a <c 또는 (a = c 및 b <d).

row_constructorrow_constructor

이 구성은 a와 유사합니다.<행 비교이지만 생성되지는 않습니다 널 입력의 경우 널. 대신, 모든 널 값이 고려됩니다 널 값이 아닌 값과 동등하지 않고 두 가지 널은 동등한 것으로 간주됩니다 (구별되지 않음). 따라서 결과는 그럴 것입니다 진실이거나 거짓, 절대 귀찮은 일입니다.

row_constructorrow_constructor

이 구성은 a와 유사합니다.=행 비교이지만 널 입력에 대해서는 널을 생성하지 않습니다. 대신, 모든 널 값은 (별개로) 불평등 한 것으로 간주됩니다 널 널 값이 아닌 값과 두 개의 널이 고려됩니다. 동일 (별개가 아님). 따라서 결과는 항상 그렇습니다 참 또는 거짓, 절대 널

참고 :SQL 사양에는 행이 필요합니다 결과가 의존하는 경우 return null과 비교하십시오 두 개의 널 값 또는 널과 널 비교.PostgreSQL이것 만 수행합니다 두 행 생성자의 결과를 비교할 때 또는 행 생성자를 하위 쿼리의 출력과 비교 안에PostgreSQL : 문서 : 9.0 : 메이저 토토 사이트 퀘리 표현식). ~ 안에 두 개의 복합 유형 값이있는 다른 컨텍스트 비교하면 두 개의 널 필드 값이 동일하게 간주되고 NULL은 NULL보다 큰 것으로 간주됩니다. 이것은 일관된 정렬 및 인덱싱을 위해서는 필요합니다 복합 유형에 대한 행동.