이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 9.20. 윈 토토/멀티 랜지 함수 및 연산자버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.20. 범위/멀티 랜지 함수 및 연산자#

참조PostgreSQL : 문서 : 18 : 8.17. 젠 토토 유형범위 유형의 개요는

표 9.58범위 유형에 사용 가능한 특수 연산자를 보여줍니다.표 9.59멀티 랜지 유형에 사용 가능한 특수 연산자를 보여줍니다. 그 외에도에 표시된 일반적인 비교 연산자표 9.1범위 및 멀티 랜지 유형에 사용할 수 있습니다. 비교 연산자는 먼저 범위 하한으로 순서를 지정하고, 그것들이 같으면 상한을 비교합니다. 멀티 랜지 연산자는 각 범위를 비등 할 때까지 비교합니다. 이로 인해 일반적으로 유용한 전체 주문이 발생하지 않지만 운영자는 고유 한 인덱스가 범위에 구성 될 수 있도록 제공됩니다.

표 9.58. 레인지 운영자

운영자

설명

예제

AnyRa젠 토토e @ AnyRa젠 토토e부울

첫 번째 범위에 두 번째 범위가 포함되어 있습니까?

int4Ra젠 토토e (2,4) @ int4Ra젠 토토e (2,3)t

AnyRa젠 토토e @ Anylement부울

범위에 요소가 포함되어 있습니까?

'[2011-01-01,2011-03-01)':: tsra젠 토토e @ '2011-01-10':: timestampT

AnyRa젠 토토e <@ AnyRa젠 토토e부울

첫 번째 범위는 두 번째 범위가 포함되어 있습니까?

int4Range (2,4) <@ int4Range (1,7)t

Anylement <@ AnyRa젠 토토e부울

요소가 범위에 포함되어 있습니까?

42 <@ int4Range (1,7)F

AnyRa젠 토토e && AnyRa젠 토토e부울

범위가 겹치는 것, 즉 공통 요소가 있습니까?

int8Range (3,7) && int8Range (4,12)T

AnyRa젠 토토e << AnyRa젠 토토e부울

첫 번째 범위가 두 번째 범위의 왼쪽으로 엄격하게 남아 있습니까?

int8Range (1,10) << int8Range (100,110)t

AnyRa젠 토토e AnyRa젠 토토e부울

첫 번째 범위는 두 번째 범위의 오른쪽입니까?

int8Ra젠 토토e (50,60) int8Ra젠 토토e (20,30)t

AnyRa젠 토토e &< AnyRa젠 토토e부울

첫 번째 범위가 두 번째 오른쪽으로 확장되지 않습니까?

int8Ra젠 토토e (1,20) 및 <int8Ra젠 토토e (18,20)T

AnyRa젠 토토e & AnyRa젠 토토e부울

첫 번째 범위가 두 번째 왼쪽으로 확장되지 않습니까?

int8Range (7,20) & int8Range (5,10)t

AnyRa젠 토토e -|- AnyRa젠 토토e부울

범위가 인접 해 있습니까?

NumRa젠 토토e (1.1,2.2) - | - NumRa젠 토토e (2.2,3.3)t

AnyRa젠 토토e + AnyRa젠 토토eAnyRa젠 토토e

범위의 결합을 계산합니다. 범위는 겹치거나 인접해야하므로 노동 조합이 단일 범위가되도록해야합니다 (그러나Ra젠 토토e_Merge ()).

NumRa젠 토토e (5,15) + NumRa젠 토토e (10,20)[5,20)

AnyRa젠 토토e * AnyRa젠 토토eAnyRa젠 토토e

범위의 교차점을 계산합니다.

int8Ra젠 토토e (5,15) * int8Ra젠 토토e (10,20)[10,15)

AnyRa젠 토토e - AnyRa젠 토토eAnyRa젠 토토e

범위의 차이를 계산합니다. 두 번째 범위는 차이가 단일 범위가되지 않는 방식으로 첫 번째 범위를 포함해서는 안됩니다.

int8Ra젠 토토e (5,15) - int8Ra젠 토토e (10,20)[5,10)


표 9.59. 멀티 랜지 연산자

운영자

설명

예제

Anymultira젠 토토e @ Anymultira젠 토토e부울

첫 번째 멀티 랜지에는 두 번째 멀티 랜지가 포함되어 있습니까?

'[2,4)':: int4multira젠 토토e @ '[2,3)':: int4multira젠 토토et

Anymultira젠 토토e @ AnyRa젠 토토e부울

멀티 랜지에는 범위가 포함되어 있습니까?

'[2,4)':: int4multira젠 토토e @ int4Ra젠 토토e (2,3)t

Anymultira젠 토토e @ Anylementboolean

멀티 랜지에는 요소가 포함되어 있습니까?

'[2011-01-01,2011-03-01)':: tsmultira젠 토토e @ '2011-01-10':: timestampT

AnyRa젠 토토e @ Anymultira젠 토토e부울

범위에 멀티 랜지가 포함되어 있습니까?

'[2,4)':: int4Ra젠 토토e @ '[2,3)':: int4multira젠 토토e20116_20119

Anymultira젠 토토e <@ Anymultira젠 토토e부울

첫 번째 멀티 랜지는 두 번째 멀티 랜지가 포함되어 있습니까?

'[2,4)':: int4multirange <@ '[1,7)':: int4multiranget

Anymultira젠 토토e <@ AnyRa젠 토토e부울

멀티 랜지에는 범위가 포함되어 있습니까?

'[2,4)':: int4multirange <@ int4Range (1,7)t

AnyRa젠 토토e <@ Anymultira젠 토토e부울

Multira젠 토토e가 포함하는 범위는?

int4Range (2,4) <@ '[1,7)':: int4multirangeT

Anylement <@ Anymultira젠 토토e부울

Multira젠 토토e가 포함하는 요소는?

4 <@ '[1,7)':: int4multiranget

Anymultira젠 토토e && Anymultira젠 토토e부울

멀티 랜더스 겹침, 즉 공통 요소가 있습니까?

'[3,7)':: int8multirange && '[4,12)':: int8multiranget

Anymultira젠 토토e && AnyRa젠 토토e부울

멀티 랜지가 범위와 겹치는가?

'[3,7)':: int8multirange && int8Range (4,12)t

AnyRa젠 토토e && Anymultira젠 토토e부울

범위가 멀티 랜지와 겹치는가?

int8Range (3,7) && '[4,12)':: int8multiranget

Anymultira젠 토토e << Anymultira젠 토토e부울

첫 번째 멀티 랜지는 두 번째 멀리 왼쪽으로 남아 있습니까?

'[1,10)':: int8multirange << '[100,110)':: int8multiranget

Anymultira젠 토토e << AnyRa젠 토토e부울

멀티 랜지가 범위의 엄격하게 남아 있습니까?

'[1,10)':: int8multirange << int8Range (100,110)t

anyra젠 토토e << Anymultira젠 토토e부울

범위는 멀티 랜지의 엄격하게 왼쪽에 있습니까?

int8Range (1,10) << '[100,110)':: int8multiranget

Anymultira젠 토토e Anymultira젠 토토e부울

첫 번째 멀티 랜지는 두 번째의 오른쪽입니까?

'[50,60)':: int8multira젠 토토e '[20,30)':: int8multira젠 토토et

Anymultira젠 토토e AnyRa젠 토토e부울

다중 방송이 범위의 엄격한 오른쪽입니까?

'[50,60)':: int8multira젠 토토e int8Ra젠 토토e (20,30)t

AnyRa젠 토토e Anymultira젠 토토e부울

범위는 멀티 랜지의 오른쪽에 엄격하게 오른쪽입니까?

int8Ra젠 토토e (50,60) '[20,30)':: int8multira젠 토토et

Anymultira젠 토토e &< Anymultira젠 토토e부울

첫 번째 멀티 랜지가 두 번째 오른쪽으로 확장되지 않습니까?

'[1,20)':: int8multirange & < '[18,20)':: int8multiranget

Anymultira젠 토토e &< AnyRa젠 토토e부울

멀티 랜지가 범위의 오른쪽으로 확장되지 않습니까?

'[1,20)':: int8multirange & <int8range (18,20)t

AnyRa젠 토토e &< Anymultira젠 토토e부울

범위가 멀티 랜지 오른쪽으로 확장되지 않습니까?

int8Range (1,20) & < '[18,20)':: int8multiranget

Anymultira젠 토토e & Anymultira젠 토토e부울

첫 번째 멀티 랜지가 두 번째 왼쪽으로 확장되지 않습니까?

'[7,20)':: int8multirange & '[5,10)':: int8multiranget

Anymultira젠 토토e & AnyRa젠 토토e부울

멀티 랜지가 범위의 왼쪽으로 확장되지 않습니까?

'[7,20)':: int8multirange & int8Range (5,10)T

AnyRa젠 토토e & Anymultira젠 토토e부울

범위가 멀티 랜지 왼쪽으로 확장되지 않습니까?

int8Range (7,20) & '[5,10)':: int8multirangeT

Anymultira젠 토토e -|- Anymultira젠 토토e부울

다중 방향이 인접 해 있습니까?

'[1.1,2.2)':: nummultira젠 토토e - | - '[2.2,3.3)':: nummultira젠 토토et

Anymultira젠 토토e -|- AnyRa젠 토토e부울

멀티 랜지는 범위에 인접 해 있습니까?

'[1.1,2.2)':: nummultira젠 토토e - | - NumRa젠 토토e (2.2,3.3)t

AnyRa젠 토토e -|- Anymultira젠 토토e부울

범위는 멀티 랜지에 인접 해 있습니까?

NumRa젠 토토e (1.1,2.2) - | - '[2.2,3.3)':: Nummultira젠 토토et

Anymultira젠 토토e + Anymultira젠 토토eAnymultira젠 토토e

멀티 링거의 결합을 계산합니다. 다중 방향이 겹치거나 인접 해있을 필요는 없습니다.

'[5,10)':: nummultirange + '[15,20)':: nummultirange[5,10), [15,20)

Anymultira젠 토토e * Anymultira젠 토토eAnymultira젠 토토e

멀티 랜지의 교차점을 계산합니다.

'[5,15)':: int8multira젠 토토e * '[10,20)':: int8multira젠 토토e[10,15)

Anymultira젠 토토e - Anymultira젠 토토eAnymultira젠 토토e

다중 방향의 차이를 계산합니다.

'[5,20)':: int8multirange- '[10,15)':: int8multirange[5,10), [15,20)


왼쪽/오른쪽/인접 연산자는 빈 범위 또는 멀티 랜지가 관련 될 때 항상 False를 반환합니다. 즉, 빈 범위는 다른 범위 전후에 간주되지 않습니다.

다른 곳에서는 빈 범위와 멀티 랭이 부가 적 정체성으로 취급됩니다. 빈 값으로 연합 된 것은 그 자체입니다. 빈 가치를 뺀 것은 그 자체입니다. 빈 다중선은 빈 범위와 정확히 같은 지점을 가지고 있습니다. 모든 범위에는 빈 범위가 포함되어 있습니다. 모든 멀티 랜지에는 원하는만큼 빈 범위가 포함되어 있습니다.

결과 범위에 두 개의 분리 하위 교대가 포함되어야하는 경우 범위 통합 및 차이 연산자는 실패합니다. 연합에 대한 별도의 운영자와 다중 방지 매개 변수를 사용하고 멀티 랜지를 반환하는 차이가 있으며, 논증이 분리되어 있어도 실패하지 않습니다. 따라서 분리 될 수있는 범위에 대한 노조 또는 차이 작업이 필요한 경우 먼저 범위를 멀티 방향으로 캐스팅하여 오류를 피할 수 있습니다.

표 9.60범위 유형과 함께 사용할 수있는 기능을 표시합니다.표 9.61멀티 랜지 유형과 함께 사용할 수있는 기능을 보여줍니다.

표 9.60. 범위 기능

기능

설명

예제

낮은(AnyRa젠 토토e) →Anylement

범위의 하한을 추출합니다 (NULL범위가 비어 있거나 하한이없는 경우).

하단 (NumRa젠 토토e (1.1,2.2))1.1

어퍼(AnyRa젠 토토e) →Anylement

범위의 상한을 추출합니다 (NULL범위가 비어 있거나 상한이없는 경우).

상단 (NumRange (1.1,2.2))2.2

ISEMPTY(AnyRa젠 토토e) →부울

범위가 비어 있습니까?

ISEMPTY (NumRange (1.1,2.2))F

lower_inc(AnyRa젠 토토e) →부울

범위의 하한이 포함되어 있습니까?

lower_inc (NumRange (1.1,2.2))T

어퍼_inc(AnyRa젠 토토e) →부울

범위의 상한이 포함되어 있습니까?

어퍼_inc (numrange (1.1,2.2))f

lower_inf(AnyRa젠 토토e) →부울

범위에 하한이 없습니까? (하한-infinity거짓을 반환합니다.)

lower_inf ( '(,)':: Daterange)t

어퍼 _inf(AnyRa젠 토토e) →부울

범위에 상한이 없습니까? (상한Infinity거짓을 반환합니다.)

어퍼 _inf ( '(,)':: daterange)T

Ra젠 토토e_Merge(AnyRa젠 토토e, AnyRa젠 토토e) →AnyRa젠 토토e

주어진 두 범위를 모두 포함하는 가장 작은 범위를 계산합니다.

Ra젠 토토e_merge ( '[1,2)':: int4Ra젠 토토e, '[3,4)':: int4Ra젠 토토e)[1,4)


표 9.61. 멀티 랜지 함수

기능

설명

예제

Lower(Anymultira젠 토토e) →Anylement

멀티 랜지의 하한을 추출합니다 (NULL다중 방송이 비어 있거나 하한이없는 경우).

하단 ( '[1.1,2.2)':: Nummultirange)1.1

어퍼(Anymultira젠 토토e) →Anylement

멀티 랜지의 상한을 추출합니다 (null멀티 랜지가 비어 있거나 상한이없는 경우).

어퍼 ( '[1.1,2.2)':: nummultirange)2.2

ISEMPTY(Anymultira젠 토토e) →부울

멀티 랜지가 비어 있습니까?

isempty ( '[1.1,2.2)':: nummultirange)F

lower_inc(Anymultira젠 토토e) →부울

멀티 랜지의 하한이 포함되어 있습니까?

lower_inc ( '[1.1,2.2)':: nummultirange)t

어퍼_inc(Anymultira젠 토토e) →부울

멀티 랜지의 상한이 포함되어 있습니까?

어퍼_inc ( '[1.1,2.2)':: nummultirange)F

lower_inf(Anymultira젠 토토e) →부울

멀티 랜지에는 하한이 없습니까? (하한-infinity거짓을 반환합니다.)

lower_inf ( '(,)':: datemultirange)T

어퍼 _inf(Anymultira젠 토토e) →부울

멀티 랜지에는 상한이 없습니까? (상한Infinity거짓을 반환합니다.)

어퍼 _inf ( '(,)':: datemultirange)t

Ra젠 토토e_merge(Anymultira젠 토토e) →AnyRa젠 토토e

전체 멀티 랜지를 포함하는 가장 작은 범위를 계산합니다.

Ra젠 토토e_merge ( '[1,2), [3,4)':: int4multirange)[1,4)

Multira젠 토토e(AnyRa젠 토토e) →Anymultira젠 토토e

주어진 범위 만 포함하는 다중 방지를 반환합니다.

Multira젠 토토e ( '[1,2)':: int4Range)[1,2)

UNNEST(Anymultira젠 토토e) →anyRa젠 토토e 설정

멀티 랜지를 오름차순 순서로 범위 세트로 확장합니다.

Unnest ( '[1,2), [3,4)':: int4multirange)

[1,2)
 [3,4)

thelower_inc, 어퍼_inc, lower_inf어퍼 _inf함수는 모두 빈 범위 또는 멀티 랜지에 대해 false를 반환합니다.