9.2. 비교 기능 및 운영자#

일반적인 비교 연산자는 다음과 같이 사용할 수 있습니다.표 9.1.

표 9.1. 비교 연산자

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

note

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

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

일반적으로 관련 데이터 유형의 값도 롤 토토할 수 있습니다. 예를 들어정수 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 :: 부울 is 알 수 없음t(가 아니라NULL)

부울 알 수 없음부울

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

True는 알 수 없음t

null :: 부울은 알 수 없음f(가 아니라NULL)


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

a사이xandy

a> =xanda<=y

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

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

note

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

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

ab
ab

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

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

표현is null표현

또는 등가이지만 비표준이지만,

표현isnull표현notnull

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

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

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

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

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

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

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

이들은 피연산자가 무효 일 때에도 항상 참 또는 거짓을 반환합니다. 널 입력은 논리적 값으로 취급됩니다알 수없는. 주석알 수 없음and알 수 없음효과적으로is nulland30759_30832

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

표 9.3. 비교 기능

기능

설명

예제

num_nonnulls ( variadic "Any") →정수

널 논 인수의 수를 반환합니다.

num_nonnulls (1, null, 2)2

num_nulls ( variadic "Any") →정수

널 인수 번호를 반환합니다.

num_nulls (1, null, 2)1


정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면