9.2. 비교 기능 및 운영자#

일반적인 롤 토토 연산자가 제공됩니다.표 9.1.

표 9.1. 비교 연산자

운영자 설명
Datatype < DataType부울 보다 작음
DataType DataType부울 보다 큰
DataType <= Datatype부울 이하
Datatype = DataType부울 더 크거나
DataType = DataType부울 Equal
DataType < DataType부울 동일하지 않음
DataType ! = DataType부울 동일하지 않음

Note

<표준 SQL 표기법입니다.동일하지 않음. ! =는 별칭이며<매우 초기 구문 분석. 따라서 구현할 수 없습니다! =and<다른 일을하는 연산자.

이 롤 토토 연산자는 숫자, 문자열 및 날짜/시간 유형을 포함하여 자연스러운 순서가있는 모든 내장 데이터 유형에 사용할 수 있습니다. 또한 구성 요소 데이터 유형이 롤 토토할 경우 배열, 복합 유형 및 범위를 롤 토토할 수 있습니다.

일반적으로 관련 데이터 유형의 값도 롤 토토할 수 있습니다. 예를 들어Integer bigint작동합니다. 이런 종류의 일부 사례는에 의해 직접 구현됩니다.Cross-Type롤 토토 연산자이지만, 그러한 연산자가 없으면, 파서는 저널 유형을 더 많은 일반 유형으로 강요하고 후자의 롤 토토 연산자를 적용합니다..

위와 같이, 모든 롤 토토 연산자는 유형의 값을 반환하는 이진 연산자입니다부울. 따라서와 같은 표현1 <2 <3유효하지 않습니다 (없기 때문에<부울 값을 비교하는 연산자3). 사용사이범위 테스트를 수행하기 위해 아래에 표시된 예측.

에 표시된 것처럼 롤 토토 사전 환자도 있습니다.표 9.2. 이들은 연산자와 비슷하지만 SQL 표준에 의해 의무화 된 특별 구문이 있습니다.

표 9.2. 비교 사전

술어

설명

예제

DataType 사이 DataType and DataType부울

사이 (범위 끝점 포함).

2 사이의 1과 3t

2 사이에서 1f

DataType Datatype and DataType부울

사이).

2 1에서 3 사이의 아님f

DataType 대칭 사이의 DataType and DataType부울

사이, 두 종말점 값을 정렬 한 후.

2 대칭 3과 1 사이의 2T

DataType 대칭 사이에 있지 않음 Datatype and DataType부울

두 엔드 포인트 값을 정렬 한 후 사이에 있지 않습니다.

2 대칭 3과 1 사이에 있지 않음F

DataType DataType부울

동일하지 않아서 널을 비슷한 값으로 취급하십시오.

1은 null과 구별됩니다t(가 아니라NULL)

NULL은 NULL과 구별됩니다F(NULL)

DataType Datatype부울

동일, 널을 비슷한 값으로 취급하십시오.

1은 null과 구별되지 않습니다f(null)

NULL은 NULL과 구별되지 않습니다t(null)

DataType is null부울

값이 null인지 테스트합니다.

1.5 is nullF

DataType 부울

값이 null이 아닌지 테스트합니다.

'null'은 null이 아닙니다t

DataType ISNULL부울

값이 null인지 테스트 (비표준 구문).

DataType notnull부울

값이 null이 아닌지 테스트 (비표준 구문).

부울 진실부울

부울 표현이 진실을 생성하는지 테스트합니다.

true is truet

null :: 부울 is truef(대신NULL)

부울 사실이 아닙니다부울

부울 표현이 거짓인지 알 수 없는지 테스트합니다.

True는 사실이 아닙니다F

Null :: 부울은 사실이 아닙니다t(null)

부울 거짓부울

부울 표현이 거짓을 생성하는지 테스트합니다.

true is falseF

null :: 부울은 거짓F(NULL)

부울 거짓이 아니다부울

부울 표현이 참인지 알 수 없는지 테스트합니다.

true는 거짓이 아닙니다t

null :: 부울은 거짓이 아닙니다t(NULL)

부울 알 수 없음부울

부울 표현이 알 수 없는지 테스트합니다.

True is UnknownF

null :: 부울이 알 수 없음t(NULL)

부울 알 수 없음부울

부울 표현식이 참인지 거짓인지 테스트.

True는 알 수 없음t

null :: 부울은 알 수 없음f(NULL)


the사이술어 테스트를 단순화합니다 :

a사이xy

와 동일합니다

a =xa<=y

사이범위에 포함 된 엔드 포인트 값을 처리합니다.대칭 사이의사이왼쪽에 대한 논쟁이 필요하지 않은 경우를 제외하고and오른쪽에있는 인수보다 작거나 동일합니다. 그렇지 않은 경우,이 두 인수는 자동으로 교환되므로 비어 있지 않은 범위가 항상 암시됩니다.

다양한 변형사이일반 롤 토토 연산자 측면에서 구현되므로 롤 토토할 수있는 모든 데이터 유형에 대해 작동합니다..

Note

사용andin사이구문은 사용으로 모호성을 만듭니다.논리 연산자로서. 이것을 해결하기 위해, a의 제한된 표현식 유형 세트 만 허용됩니다.사이절. 더 복잡한 하위 표현을 작성 해야하는 경우사이, 하위 표현 주위에 괄호를 작성하십시오.

일반 비교 연산자 수율 null (Signifing알 수없는), 입력이 null 일 때 true 또는 false가 아닙니다. 예를 들어,7 = nullricleds null 님과 마찬가지로7 < null. 이 동작이 적합하지 않은 경우 사용하십시오.is [not] 별개의Predicates :

aB
aB

널 비 널 입력의 경우|<운영자. 그러나 두 입력 모두 NULL이면 False를 반환하고 하나의 입력 만 NULL 인 경우 TRUE를 반환합니다. 비슷하게,동일합니다=nuln 널 입력의 경우, 두 입력이 모두 null 일 때 true를 반환하고 하나의 입력 만 null이면 False를 반환합니다. 따라서, 이들은 널이 Null이 정상적인 데이터 값인 것처럼 효과적으로 행동하는 것이알 수없는.

값이 무효인지 여부를 확인하려면 Predicates를 사용하십시오.

표현is null표현

또는 등가이지만 비표준, 예정부 :

표현isnull표현NOTNULL

donot쓰기표현= null왜냐하면NULL동일 NULL. (NULL 값은 알려지지 않은 값을 나타내며, 두 개의 미지의 값이 동일한지 여부는 알려져 있지 않습니다.)

일부 응용 프로그램은표현= nulltrue를 반환하면표현NULL 값으로 평가합니다. 이러한 응용 프로그램은 SQL 표준을 준수하도록 수정하는 것이 좋습니다. 그러나 그 일을 할 수 없다면transform_null_equals구성 변수를 사용할 수 있습니다. 활성화 된 경우PostgreSQL전환x = null클로즈 tox is null.

표현row 값입니다.is null행 표정 자체가 무일하게 또는 모든 행의 필드가 무일하게 늘어날 때행 표정 자체가 널이없고 모든 행의 필드가 널이 아닌 경우에 맞습니다. 이 행동 때문에is nulland행 값 표현식에 대한 역 결과를 항상 반환하지는 않습니다. 특히, NULL 및 NULL 필드를 모두 포함하는 행 값 표현식은 두 테스트 모두에 대해 False를 반환합니다. 예를 들어:

SELECT ROW (1,2.5, '테스트입니다') = Row (1, 3, '동일하지 않음');

SELECT ROW (표*)는 테이블에서 NULL입니다.  -완전히 널 줄을 감지하십시오

Select Row (표*)는 테이블에서 NULL이 아닙니다.  -모든 널 줄을 감지하십시오

테이블에서 not (행 (표*)이 null이 아님)을 선택하십시오. - 최소한 하나의 널 감지 행

경우에 따라 글을 쓰는 것이 바람직 할 수 있습니다Row NULL과는 다릅니다또는Row null과는 다릅니다, 이는 행 필드에서 추가 테스트없이 전체 행 값이 널인지 확인합니다.

부울 값도 Predicates를 사용하여 테스트 할 수 있습니다

boolean_expression진실boolean_expression사실이 아닙니다boolean_expression거짓boolean_expression거짓이 아니다boolean_expression알 수 없음boolean_expression알 수 없음

피연산자가 널이라도 항상 진실 또는 거짓을 반환합니다. 널 입력은 논리적 값으로 취급됩니다알 수없는. 주석알 수 없음and알 수 없음효과적으로is null33469_33544

일부 비교 관련 기능도 사용할 수 있습니다.표 9.3.

표 9.3. 비교 기능

기능

설명

예제

num_nonnulls(variadic "Any") →정수

널이 아닌 인수의 수를 반환합니다.

num_nonnulls (1, null, 2)2

num_nulls(variadic "Any") →정수

널 인수 수를 반환합니다.

num_nulls (1, null, 2)1


정정 제출

문서에 맞지 않는 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면