9.20. 범위 함수 및 연산자

참조PostgreSQL : 문서 : 13 : 8.17. 스포츠 토토 결과 유형토토 유형에 대한 개요입니다.

표 9.53범위 유형에 사용할 수 있는 특수 연산자를 표시합니다. 그 외에도 다음과 같은 일반적인 비교 연산자가 있습니다.표 9.1토토 유형에 사용할 수 있습니다. 비교 연산자는 먼저 토토 하한을 기준으로 정렬하고, 해당 값이 동일한 경우에만 상한을 비교합니다. 이는 일반적으로 유용한 전체 순서로 이어지지는 않지만 토토에 고유 인덱스를 구성할 수 있도록 연산자가 제공됩니다.

표 9.53. 범위 연산자

운영자

설명

anyrange @ anyrange부울

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

int4range(2,4) @ int4range(2,3)t

아무토토 @ 모든 요소부울

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

'[2011-01-01,2011-03-01)'::tsrange @ '2011-01-10'::timestampt

anyrange <@ anyrange부울

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

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

모든 요소 <@ 아무토토부울

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

42 <@ int4range(1,7)f

anyrange && anyrange부울

토토가 겹치나요, 즉 공통 요소가 있습니까?

int8range(3,7) && int8range(4,12)t

anyrange << anyrange부울

첫 번째 토토는 두 번째 토토의 왼쪽에 있습니까?

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

anyrange anyrange부울

첫 번째 토토가 두 번째 토토의 오른쪽에 있습니까?

int8range(50,60) int8range(20,30)t

anyrange &< anyrange부울

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

int8range(1,20) &< int8range(18,20)t

anyrange & anyrange부울

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

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

anyrange -|- 아무토토부울

토토가 인접해 있습니까?

숫자 범위(1.1,2.2) -|- 숫자 범위(2.2,3.3)t

anyrange + anyrangeanyrange

범위의 합집합을 계산합니다. 범위는 서로 겹치거나 인접해야 하므로 합집합은 단일 범위가 됩니다(그러나 참조range_merge()).

숫자 토토(5,15) + 숫자 토토(10,20)[5,20)

아무토토 * 아무토토아무토토

토토의 교차점을 계산합니다.

int8range(5,15) * int8range(10,20)[10,15)

anyrange - anyrangeanyrange

토토의 차이를 계산합니다. 두 번째 토토는 차이가 단일 토토가 되지 않도록 첫 번째 토토에 포함되어서는 안 됩니다.

int8range(5,15) - int8range(10,20)[5,10)


왼쪽/오른쪽/인접 연산자는 빈 토토가 포함될 때 항상 false를 반환합니다. 즉, 빈 토토는 다른 토토 앞이나 뒤에 있는 것으로 간주되지 않습니다.

표 9.54토토 유형과 함께 사용할 수 있는 함수를 표시합니다.

표 9.54. 범위 함수

기능

설명

하위 ( anyrange ) → 모든 요소

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

낮음(숫자 토토(1.1,2.2))1.1

상위 ( 아무토토 ) → 모든 요소

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

상위(숫자 범위(1.1,2.2))2.2

비어있음 ( anyrange ) → 부울

토토가 비어 있습니까?

isempty(숫자 범위(1.1,2.2))f

lower_inc ( anyrange ) → 부울

토토의 하한도 포함됩니까?

lower_inc(숫자 범위(1.1,2.2))t

upper_inc ( anyrange ) → 부울

토토의 상한이 포함됩니까?

upper_inc(숫자 범위(1.1,2.2))f

lower_inf ( anyrange ) → 부울

토토의 하한은 무한합니까?

lower_inf('(,)'::daterange)t

upper_inf ( 아무토토 ) → 부울

토토의 상한은 무한합니까?

upper_inf('(,)'::daterange)t

토토_병합 ( anyrange, anyrange ) → anyrange

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

range_merge('[1,2)'::int4range, '[3,4)'::int4range)[1,4)


lower_inc, upper_inc, lower_infupper_inf함수는 모두 빈 토토에 대해 false를 반환합니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.