이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 9.2. 롤 토토 기능 및 운영자버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.2. 비교 함수 및 연산자#

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

표 9.1. 비교 연산자

운영자 설명
데이터 유형 < 데이터 유형부울 미만
데이터 유형 데이터 유형부울 보다 큼
데이터 유형 <= 데이터 유형부울 이하
데이터 유형 = 데이터 유형부울 보다 크거나 같음
데이터 유형 = 데이터 유형부울 같음
데이터 유형 < 데이터 유형부울 같지 않음
데이터 유형 != 데이터 유형부울 같지 않음

참고

<은에 대한 표준 SQL 표기법입니다.같지 않음. !=별칭은 다음으로 변환됩니다.<파싱의 매우 초기 단계입니다. 따라서 구현이 불가능합니다.!=그리고<다른 작업을 수행하는 연산자.

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

일반적으로 관련 데이터 유형의 값을 비교하는 것도 가능합니다. 예를 들어정수 비긴트작동합니다. 이러한 종류의 일부 사례는 다음에서 직접 구현됩니다.크로스형비교 연산자. 그러나 그러한 연산자를 사용할 수 없는 경우 파서는 덜 일반적인 유형을 더 일반적인 유형으로 강제 변환하고 후자의 비교 연산자를 적용합니다.

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

또한 다음과 같이 몇 가지 비교 술어가 있습니다.표 9.2. 이는 연산자와 매우 유사하게 동작하지만 SQL 표준에서 요구하는 특수 구문이 있습니다.

표 9.2. 비교 술어

술어

설명

데이터 유형 사이 데이터 유형 그리고 데이터 유형부울

사이(범위 끝점 포함).

1과 3 사이의 2t

2 3과 1 사이f

데이터 유형 다음 사이 아님 데이터 유형 그리고 데이터 유형부울

사이에 없음(부정사이).

2 1과 3 사이가 아님f

데이터 유형 대칭 사이 데이터 유형 그리고 데이터 유형부울

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

2 대칭 3과 1 사이t

데이터 유형 대칭이 아님 데이터 유형 그리고 데이터 유형부울

두 끝점 값을 정렬한 후 사이가 아닙니다.

2 대칭 3과 1 사이가 아님f

데이터 유형 다음과 구별됨 데이터 유형부울

같지 않음, null을 비교 가능한 값으로 처리합니다.

1은 토토 사이트 순위과 구별됩니다.t(대신토토 사이트 순위)

토토 사이트 순위은 토토 사이트 순위과 구별됩니다.f(대신토토 사이트 순위)

데이터 유형 다음과 다르지 않습니다 데이터 유형부울

같음, null을 비교 가능한 값으로 처리합니다.

1은 토토 사이트 순위과 구별되지 않습니다.f(대신토토 사이트 순위)

토토 사이트 순위은 토토 사이트 순위과 구별되지 않습니다.t(대신토토 사이트 순위)

데이터 유형 토토 사이트 순위입니다부울

값이 토토 사이트 순위인지 테스트합니다.

1.5는 토토 사이트 순위입니다.f

데이터 유형 토토 사이트 순위이 아닙니다부울

값이 토토 사이트 순위이 아닌지 테스트합니다.

'null'은 토토 사이트 순위이 아닙니다t

데이터 유형 IS토토 사이트 순위부울

값이 토토 사이트 순위(비표준 구문)인지 테스트합니다.

데이터 유형 NOT토토 사이트 순위부울

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

부울 사실입니다부울

부울 표현식이 참인지 테스트하세요.

사실은 사실입니다t

토토 사이트 순위::부울이 TRUE입니다.f(보다는토토 사이트 순위)

부울 사실이 아님부울

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

사실은 사실이 아님f

토토 사이트 순위::부울은 TRUE가 아닙니다.t(보다는토토 사이트 순위)

부울 거짓입니다부울

부울 표현식이 false를 산출하는지 테스트합니다.

참은 거짓입니다f

토토 사이트 순위::부울은 FALSEf(대신토토 사이트 순위)

부울 거짓이 아닙니다부울

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

참은 거짓이 아닙니다t

토토 사이트 순위::부울은 거짓이 아닙니다t(보다는토토 사이트 순위)

부울 알 수 없음부울

부울 표현식이 알 수 없는 결과를 낳는지 테스트합니다.

사실은 알 수 없음f

토토 사이트 순위::부울은 알 수 없음t(대신토토 사이트 순위)

부울 알 수 없는 것이 아님부울

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

사실은 알 수 없음t

토토 사이트 순위::부울은 알 수 없음f(대신토토 사이트 순위)


사이술어는 범위 테스트를 단순화합니다:

a사이x그리고y

다음과 동일함

a=x그리고a<=y

알아두세요사이끝점 값을 범위에 포함된 것으로 처리합니다.대칭 사이다음과 같습니다사이단, 왼쪽에 있는 인수에 대한 요구 사항은 없습니다.그리고오른쪽 인수보다 작거나 같습니다. 그렇지 않은 경우 두 인수가 자동으로 교환되므로 비어 있지 않은 범위가 항상 암시됩니다.

다양한 변종사이일반적인 비교 연산자 측면에서 구현되므로 비교할 수 있는 모든 데이터 유형에 작동합니다.

참고

사용그리고에서사이구문은 다음을 사용하여 모호함을 만듭니다.그리고논리 연산자로. 이 문제를 해결하려면 제한된 표현식 유형 집합만 a의 두 번째 인수로 허용됩니다.사이절. 더 복잡한 하위 표현식을 작성해야 하는 경우사이, 하위 표현식 주위에 괄호를 쓰세요.

일반적인 비교 연산자는 토토 사이트 순위을 생성합니다(의미알 수 없음), 입력 중 하나가 토토 사이트 순위인 경우 true 또는 false가 아닙니다. 예를 들어,7 = 토토 사이트 순위그렇듯이 토토 사이트 순위을 반환합니다7 < 토토 사이트 순위. 이 동작이 적합하지 않은 경우에는IS [아님] 다음과 다름술어:

a다음과 구별됨b
a다음과 다르지 않습니다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. 비교 함수

기능

설명

error_on_토토 사이트 순위 ( 모든 요소 ) → 모든 요소

입력이 토토 사이트 순위 값인지 확인하고, 그렇다면 오류를 생성합니다. 그렇지 않으면 입력을 반환합니다.

error_on_토토 사이트 순위(42)42

error_on_토토 사이트 순위(행(null,null))(,)

num_non토토 사이트 순위s ( VARIADIC "아무거나" ) → 정수

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

num_non토토 사이트 순위s(1, 토토 사이트 순위, 2)2

num_토토 사이트 순위s ( VARIADIC "아무거나" ) → 정수

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

num_토토 사이트 순위s(1, 토토 사이트 순위, 2)1