다음과 같이 일반적인 비교 연산자를 사용할 수 있습니다.표 9.1.
표 9.1. 비교 연산자
| 운영자 | 설명 |
|---|---|
데이터 유형 < 데이터 유형 → 부울 |
미만 |
데이터 유형 데이터 유형 → 부울 |
보다 큼 |
데이터 유형 <= 데이터 유형 → 부울 |
이하 |
데이터 유형 = 데이터 유형 → 부울 |
보다 크거나 같음 |
데이터 유형 = 데이터 유형 → 부울 |
같음 |
데이터 유형 < 데이터 유형 → 부울 |
같지 않음 |
데이터 유형 != 데이터 유형 → 부울 |
같지 않음 |
<은에 대한 표준 SQL 표기법입니다.“같지 않음”. !=별칭은 다음으로 변환됩니다.<파싱의 매우 초기 단계입니다. 따라서 구현이 불가능합니다.!=그리고<다른 작업을 수행하는 연산자.
이러한 비교 연산자는 숫자, 문자열 및 날짜/시간 유형을 포함하여 자연 순서가 있는 모든 내장 데이터 유형에 사용할 수 있습니다. 또한 구성요소 데이터 유형이 비교 가능한 경우 배열, 복합 유형 및 범위를 비교할 수 있습니다.
일반적으로 관련 데이터 유형의 값을 비교하는 것도 가능합니다. 예를 들어정수 비긴트작동합니다. 이러한 종류의 일부 사례는 다음에서 직접 구현됩니다.“크로스형”비교 연산자. 그러나 그러한 연산자를 사용할 수 없는 경우 파서는 덜 일반적인 유형을 더 일반적인 유형으로 강제 변환하고 후자의 비교 연산자를 적용합니다.
위에 표시된 것처럼 모든 비교 연산자는 유형의 값을 반환하는 이진 연산자입니다.부울. 따라서 다음과 같은 표현은1 < 2 < 3유효하지 않습니다(없기 때문에<부울 값을 비교하는 연산자3). 다음을 사용하세요.사이범위 테스트를 수행하기 위해 아래에 표시된 조건자.
또한 다음과 같이 몇 가지 비교 술어가 있습니다.표 9.2. 이는 연산자와 매우 유사하게 동작하지만 SQL 표준에서 요구하는 특수 구문이 있습니다.
표 9.2. 비교 술어
|
술어 설명 예 |
|---|
|
사이(범위 끝점 포함).
|
|
사이에 없음(부정
|
|
사이, 두 끝점 값을 정렬한 후.
|
|
두 끝점 값을 정렬한 후 사이가 아닙니다.
|
|
같지 않음, null을 비교 가능한 값으로 처리합니다.
|
|
같음, null을 비교 가능한 값으로 처리합니다.
|
|
값이 토토 사이트 순위인지 테스트합니다.
|
|
값이 토토 사이트 순위이 아닌지 테스트합니다.
|
|
값이 토토 사이트 순위(비표준 구문)인지 테스트합니다. |
|
값이 null이 아닌지 테스트하세요(비표준 구문). |
|
부울 표현식이 참인지 테스트하세요.
|
|
부울 표현식이 false인지 알 수 없는지 테스트합니다.
|
|
부울 표현식이 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를 반환합니다. 예를 들면:
SELECT ROW(1,2.5,'테스트입니다') = ROW(1, 3, '같지 않음'); SELECT ROW(table.*) IS 토토 사이트 순위 FROM 테이블; -- 모두 null인 행을 감지합니다. SELECT ROW(table.*)는 테이블에서 토토 사이트 순위이 아닙니다. -- null이 아닌 모든 행을 감지합니다. SELECT NOT(ROW(table.*) IS NOT 토토 사이트 순위) FROM TABLE; -- 행에서 하나 이상의 null을 감지합니다.
어떤 경우에는 다음과 같이 작성하는 것이 더 나을 수도 있습니다.행 토토 사이트 순위과 구별됨또는행 토토 사이트 순위과 구별되지 않음, 이는 행 필드에 대한 추가 테스트 없이 전체 행 값이 토토 사이트 순위인지 여부를 간단히 확인합니다.
boolean_expression사실입니다boolean_expression사실이 아님boolean_expression거짓입니다boolean_expression거짓이 아닙니다boolean_expression알 수 없음boolean_expression알 수 없는 것이 아님
이것은 피연산자가 null인 경우에도 항상 true 또는 false를 반환하며 결코 null 값을 반환하지 않습니다. null 입력은 논리값으로 처리됩니다.“알 수 없음”. 참고하세요알 수 없음그리고알 수 없는 것이 아님실질적으로 다음과 동일합니다토토 사이트 순위임그리고토토 사이트 순위이 아닙니다, 입력 표현식이 부울 유형이어야 한다는 점을 제외하고 각각.
다음과 같이 일부 비교 관련 기능도 사용할 수 있습니다.표 9.3.
표 9.3. 비교 함수