| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : 서브 퀘리 토토 꽁 머니식 | PostgreSQL : 문서 : 9.3 : 토토 사이트 추천 및 연산자 | 9장. 기능 및 운영자 | 4300범퍼카 토토100-100300 | |
이 섹션에서는 다음을 만들기 위한 몇 가지 특수 구성을 설명합니다. 값 그룹 간의 다중 비교. 이러한 양식은 이전 하위 쿼리 형식과 구문적으로 관련됨 섹션이지만 하위 쿼리는 포함하지 않습니다. 배열을 포함하는 형식 하위 표현식은 다음과 같습니다.PostgreSQL확장; 나머지는SQL-호환. 모든 표현 형식 이 섹션에 설명된 내용은 부울(true/false) 결과를 반환합니다.
표현IN (값 [, ...])
오른쪽은 괄호로 묶인 스칼라 목록입니다. 표현. 결과는 다음과 같습니다"사실"만약 왼쪽 표현식의 결과는 오른쪽 표현식과 같습니다. 표현. 이것은의 약칭 표기법입니다.
표현 = 값1또는표현 = 값2또는 ...
왼쪽 표현식이 null을 산출하거나, 오른쪽 값이 동일하지 않으며 오른쪽 값이 하나 이상 있습니다. 표현식은 null을 생성하며, 결과는IN구성은 false가 아닌 null이 됩니다. 이는 SQL의 Null 값의 부울 조합에 대한 일반 규칙입니다.
표현다음에 없음(값 [, ...])
오른쪽은 괄호로 묶인 스칼라 목록입니다. 표현. 결과는 다음과 같습니다"사실"만약 왼쪽 표현식의 결과는 모든 오른쪽 표현식과 동일하지 않습니다. 표현. 이것은의 약칭 표기법입니다.
표현 < 값1그리고표현 < 값2그리고 ...
왼쪽 표현식이 null을 산출하거나, 오른쪽 값이 동일하지 않으며 오른쪽 값이 하나 이상 있습니다. 표현식은 null을 생성하며, 결과는아님 안으로구조는 null이 될 것이며 순진하게는 사실이 아닐 것입니다. 기대합니다. 이는 SQL의 부울(Boolean)에 대한 일반 규칙을 따릅니다. null 값의 조합입니다.
팁: x y에 없음다음과 동일함NOT (x IN y)모든 경우에. 그러나 null 값은 작업할 때 초보자가 넘어질 가능성이 훨씬 더 높습니다.포함되지 않음함께 일할 때보다IN. 다음과 같은 경우에는 자신의 상태를 긍정적으로 표현하는 것이 가장 좋습니다. 가능합니다.
표현 연산자모두(배열 표현식) 표현 연산자일부 (배열 표현식)
오른쪽은 괄호로 묶인 표현식입니다. 배열 값을 산출합니다. 왼쪽 표현식이 평가되고 주어진를 사용하여 배열의 각 요소와 비교연산자, 부울 결과를 생성해야 합니다. 결과는모두is"사실"참된 결과가 얻어지면. 결과는 다음과 같습니다"거짓"참된 결과가 발견되지 않은 경우 (배열에 요소가 0개인 경우 포함).
배열 표현식이 널 배열을 생성하는 경우, 결과는모두널이 됩니다. 왼손잡이의 경우 표현식은 null을 생성하며 결과는모두이다 일반적으로 null입니다(엄격하지 않은 비교 연산자는 다른 결과가 나올 수도 있음) 또한 오른쪽 배열의 경우 null 요소가 포함되어 있고 실제 비교 결과가 없습니다. 획득, 결과는모두널이 될 것입니다. 거짓이 아닙니다(다시 말하지만, 엄격한 비교 연산자를 가정함). 이것은 부울 조합에 대한 SQL의 일반 규칙에 따라 null 값입니다.
일부은의 동의어입니다.모두.
표현 연산자전체 (배열 표현식)
오른쪽은 괄호로 묶인 표현식입니다. 배열 값을 산출합니다. 왼쪽 표현식이 평가되고 주어진를 사용하여 배열의 각 요소와 비교연산자, 부울 결과를 생성해야 합니다. 결과는전체is"사실"모든 비교 결과가 참인 경우(다음 포함) 배열에 요소가 0개인 경우). 결과는 다음과 같습니다"거짓"잘못된 결과가 발견된 경우.
배열 표현식이 null 배열을 생성하는 경우, 결과는전체널이 됩니다. 왼손잡이의 경우 표현식은 null을 생성하며 결과는전체이다 일반적으로 null입니다(엄격하지 않은 비교 연산자는 다른 결과가 나올 수도 있음) 또한 오른쪽 배열의 경우 null 요소가 포함되어 있고 잘못된 비교 결과가 없습니다. 획득, 결과는전체널이 될 것입니다. 사실이 아닙니다(다시 말하지만, 엄격한 비교 연산자를 가정함). 이것은 null의 부울 조합에 대한 SQL의 일반 규칙에 따라 값.
row_constructor 연산자 row_constructor
각 측면은 다음에 설명된 대로 행 생성자입니다.섹션 4.2.13. 두 행 값의 필드 수가 동일해야 합니다. 각 측면이 평가되고 행별로 비교됩니다. 행 다음과 같은 경우 비교가 허용됩니다.연산자is=, <, <, <=, 또는=또는 다음 중 하나와 유사한 의미를 갖습니다. 이것들. (구체적으로 말하면 연산자는 행 비교가 될 수 있습니다. 연산자가 B-트리 연산자 클래스의 멤버이거나 의 부정자=B-트리의 구성원 연산자 클래스.)
그=그리고<사례는 이전 사례와 약간 다르게 작동합니다. 다른 사람. 두 행이 모두 해당하는 경우 동일한 것으로 간주됩니다. 멤버는 null이 아니고 동일합니다. 행이 동일하지 않은 경우 해당 멤버는 null이 아니고 동일하지 않습니다. 그렇지 않으면 행 비교 결과를 알 수 없습니다(null).
다음을 위해<, <=, 그리고=경우에는 행 요소가 스포츠 토토됩니다. 왼쪽에서 오른쪽으로, 같지 않거나 null 쌍이 나타나면 즉시 중지됩니다. 요소가 발견되었습니다. 이 요소 쌍 중 하나라도 null인 경우 행 스포츠 토토 결과를 알 수 없습니다(null). 그렇지 않으면 이 요소 쌍의 스포츠 토토에 따라 결과가 결정됩니다. 에 대한 예ROW(1,2,NULL) < ROW(1,3,0)요소의 세 번째 쌍이 null이 아니기 때문에 null이 아닌 true를 반환합니다. 고려했습니다.
참고:이전PostgreSQL8.2, 그<, <=, 그리고=사례는 다음과 같습니다. SQL 사양에 따라 처리되지 않습니다. 다음과 같은 비교ROW(a,b) < ROW(c,d)다음과 같이 구현되었습니다a < c AND b < d반면 올바른 행동은 다음과 같습니다.a < c OR (a = c AND b < d).
row_constructor다음과 구별됨row_constructor
이 구성은 다음과 유사합니다.<행 비교이지만 null 입력에 대해서는 null이 생성되지 않습니다. 대신 모든 null 값은 다음과 같지 않은 것으로 간주됩니다. null이 아닌 모든 값과 두 개의 null은 동일한 것으로 간주됩니다. 별개). 따라서 결과는 참이거나 거짓일 것입니다. 널.
row_constructor다음과 다르지 않습니다row_constructor
이 구성은 다음과 유사합니다.=행 스포츠 토토하지만 null 입력에 대해서는 null이 생성되지 않습니다. 대신, 모든 null 값은 null 값과 같지 않은(구별되는) 것으로 간주됩니다. Null이 아닌 값이며 두 개의 Null은 동일한 것으로 간주됩니다( 별개). 따라서 결과는 항상 참이거나 거짓일 것입니다. 결코 null이 아닙니다.
참고:SQL 사양에는 행별 비교가 필요합니다. 결과가 두 NULL 값 비교에 따라 달라지는 경우 NULL을 반환합니다. 또는 NULL 및 NULL이 아닌 것입니다.포스트그레SQL이 작업은 다음을 비교할 때만 수행됩니다. 두 행 생성자의 결과 또는 행 생성자를 비교한 결과 하위 쿼리의 출력(예:섹션 9.22). 다른 맥락에서 두 개의 복합 유형 값을 스포츠 토토하는 경우 두 개의 NULL 필드 값 동일한 것으로 간주되며 NULL은 a보다 큰 것으로 간주됩니다. NULL이 아닙니다. 이는 일관된 정렬과 정렬을 위해 필요합니다. 복합 유형의 색인 생성 동작입니다.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 하위 쿼리 표현식 | 위로 | 복귀 설정 기능 |