다음과 같이 일반적인 비교 연산자를 사용할 수 있습니다.표 9.1.
표 9.1. 비교 연산자
| 운영자 | 설명 |
|---|---|
데이터 유형 < 데이터 유형 → 부울 |
미만 |
데이터 유형 데이터 유형 → 부울 |
보다 큼 |
데이터 유형 <= 데이터 유형 → 부울 |
보다 작거나 같음 |
데이터 유형 = 데이터 유형 → 부울 |
보다 크거나 같음 |
데이터 유형 = 데이터 유형 → 부울 |
같음 |
데이터 유형 < 데이터 유형 → 부울 |
같지 않음 |
데이터 유형 != 데이터 유형 → 부울 |
같지 않음 |
<는에 대한 표준 SQL 표기법입니다.“같지 않음”. !=별칭은 다음으로 변환됩니다.<파싱 초기 단계입니다. 따라서 구현이 불가능합니다.!=그리고<다른 작업을 수행하는 연산자.
이러한 비교 연산자는 숫자, 문자열 및 날짜/시간 유형을 포함하여 자연 순서가 있는 모든 내장 데이터 유형에 사용할 수 있습니다. 또한 구성요소 데이터 유형이 비교 가능한 경우 배열, 복합 유형 및 범위를 비교할 수 있습니다.
일반적으로 관련 데이터 유형의 값을 비교하는 것도 가능합니다. 예를 들어정수 비긴트작동합니다. 이러한 종류의 일부 사례는 다음에서 직접 구현됩니다.“크로스형”비교 연산자. 그러나 그러한 연산자를 사용할 수 없는 경우 파서는 덜 일반적인 유형을 더 일반적인 유형으로 강제 변환하고 후자의 비교 연산자를 적용합니다.
위에 표시된 것처럼 모든 비교 연산자는 유형의 값을 반환하는 이항 연산자입니다.부울. 따라서 다음과 같은 표현은1 < 2 < 3유효하지 않습니다(없기 때문에<부울 값을 비교하는 연산자3). 다음을 사용하세요.사이범위 테스트를 수행하기 위해 아래에 표시된 조건자.
또한 다음과 같이 몇 가지 비교 조건자가 있습니다.표 9.2. 이는 연산자와 매우 유사하게 동작하지만 SQL 표준에서 요구하는 특수 구문이 있습니다.
표 9.2. Comparison Predicates
|
술어 설명 예 |
|---|
|
사이(범위 끝점 포함).
|
|
사이에 없음(부정
|
|
사이, 두 끝점 값을 정렬한 후.
|
|
두 끝점 값을 정렬한 후 사이가 아닙니다.
|
|
같지 않음, null을 비교 가능한 값으로 처리합니다.
|
|
같음, null을 비교 가능한 값으로 처리합니다.
|
|
값이 와이즈 토토인지 테스트합니다.
|
|
값이 와이즈 토토이 아닌지 테스트합니다.
|
|
값이 null인지 테스트합니다(비표준 구문). |
|
값이 와이즈 토토(비표준 구문)이 아닌지 테스트합니다. |
|
부울 표현식이 참인지 테스트하세요.
|
|
부울 표현식이 거짓인지 알 수 없는지를 테스트합니다.
|
|
부울 표현식이 false를 산출하는지 테스트하세요.
|
|
부울 표현식이 참인지 알 수 없는지 테스트합니다.
|
|
부울 표현식이 알 수 없는 결과를 낳는지 테스트합니다.
|
|
부울 표현식이 참인지 거짓인지 테스트합니다.
|
a사이x그리고y
다음과 동일함
a=x그리고a<=y
알아두세요사이끝점 값을 범위에 포함된 것으로 처리합니다.대칭 사이다음과 같습니다사이단, 왼쪽에 있는 인수에 대한 요구 사항은 없습니다.그리고오른쪽 인수보다 작거나 같습니다. 그렇지 않은 경우 두 인수가 자동으로 교환되므로 비어 있지 않은 범위가 항상 암시됩니다.
다양한 변종사이일반적인 비교 연산자 측면에서 구현되므로 비교할 수 있는 모든 데이터 유형에 작동합니다.
사용그리고에서사이구문은 다음을 사용하여 모호함을 만듭니다.그리고논리 연산자로. 이 문제를 해결하려면 제한된 표현식 유형 집합만 a의 두 번째 인수로 허용됩니다.사이절. 더 복잡한 하위 표현식을 작성해야 하는 경우사이, 하위 표현식 주위에 괄호를 씁니다.
일반적인 비교 연산자는 와이즈 토토을 생성합니다(의미“알 수 없음”), 입력 중 하나가 와이즈 토토인 경우 true 또는 false가 아닙니다. 예를 들어,7 = 와이즈 토토그렇듯이 와이즈 토토을 반환합니다7 < 와이즈 토토. 이 동작이 적합하지 않은 경우에는IS [아님] 다음과 다름술어:
a다음과 구별됨ba다음과 다르지 않습니다b
널이 아닌 입력의 경우,다음과 구별됨다음과 같습니다<연산자. 그러나 두 입력이 모두 와이즈 토토이면 false를 반환하고, 하나만 와이즈 토토이면 true를 반환합니다. 마찬가지로,다음과 다르지 않습니다동일함=null이 아닌 입력의 경우, 두 입력이 모두 null이면 true를 반환하고, 입력 중 하나만 null이면 false를 반환합니다. 따라서 이러한 술어는 null이 아닌 일반 데이터 값인 것처럼 효과적으로 작동합니다.“알 수 없음”.
값이 null인지 아닌지 확인하려면 조건자를 사용하십시오:
표현와이즈 토토입니다표현와이즈 토토이 아닙니다
또는 동등하지만 비표준인 술어:
표현IS와이즈 토토표현NOT와이즈 토토
도아님쓰기왜냐하면표현= 와이즈 토토와이즈 토토아닙니다“같음” 와이즈 토토. (와이즈 토토 값은 알 수 없는 값을 나타내며, 알 수 없는 두 값이 같은지 여부는 알 수 없습니다.)
일부 응용프로그램에서는 이를 예상할 수 있습니다.다음인 경우 true를 반환합니다.표현= 와이즈 토토표현널 값으로 평가됩니다. SQL 표준을 준수하도록 이러한 애플리케이션을 수정하는 것이 좋습니다. 그러나 그렇게 할 수 없는 경우에는transform_와이즈 토토_equals구성 변수를 사용할 수 있습니다. 활성화된 경우,포스트그레SQL변환할 것입니다x = 와이즈 토토절x는 와이즈 토토입니다..
만약에표현행 값이면와이즈 토토입니다행 표현식 자체가 null이거나 행의 모든 필드가 null인 경우 true입니다. 반면와이즈 토토이 아닙니다행 표현식 자체가 null이 아니고 모든 행의 필드가 null이 아닌 경우 true입니다. 이러한 행동으로 인해,와이즈 토토임그리고와이즈 토토이 아닙니다행 값 표현식에 대해 항상 반대 결과를 반환하지는 않습니다. 특히 null 필드와 null이 아닌 필드를 모두 포함하는 행 값 식은 두 테스트 모두에 대해 false를 반환합니다. 어떤 경우에는 다음과 같이 작성하는 것이 더 나을 수도 있습니다.행 와이즈 토토과 구별됨또는행 와이즈 토토과 구별되지 않음, 이는 행 필드에 대한 추가 테스트 없이 전체 행 값이 와이즈 토토인지 여부를 간단히 확인합니다.
boolean_expression사실입니다boolean_expression사실이 아님boolean_expression거짓입니다boolean_expression거짓이 아닙니다boolean_expression알 수 없음boolean_expression알 수 없는 것이 아님
이것은 피연산자가 null인 경우에도 항상 true 또는 false를 반환하며 결코 null 값을 반환하지 않습니다. null 입력은 논리값으로 처리됩니다.“알 수 없음”. 참고하세요알 수 없음그리고알 수 없는 것이 아님실질적으로 다음과 동일합니다와이즈 토토입니다그리고와이즈 토토이 아닙니다, 입력 표현식이 부울 유형이어야 한다는 점만 제외됩니다.
다음과 같이 일부 비교 관련 기능도 사용할 수 있습니다.표 9.3.
표 9.3. 비교 함수
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.