다음을 통해 공유


다중값(ARRAY) 비교

콘텐츠 인덱스에 저장된 열에는 여러 값이 있을 수 있으며 ARRAY 비교 조건자를 사용하여 다중값 열을 비교할 수 있습니다.

ARRAY 비교 조건자의 구문은 다음과 같습니다.

...WHERE <column> <comp_op> [<quantifier>] <comparison_list>
                
...WHERE <column> <comp_op> <value>

열 참조가 다중값 열이 아닌 경우 오류가 반환됩니다. 열 데이터 형식은 비교 목록의 요소와 호환되어야 합니다. 필요한 경우 열 참조를 다른 데이터 형식으로 캐스팅 할 수 있습니다.

비교 연산자(comp_op)는 일반 비교 연산자일 수 있습니다. 다중값 비교에서 비교 연산자는 수량자가 사용되는지 여부에 따라 약간 다른 의미를 갖습니다. 수량자는 비교 목록의 전체 또는 일부 값에 대해 비교해야 하는지 여부를 식별합니다. 비교 연산자의 함수는 이 문서의 뒷부분에 있는 각 수량자(ALL 및 SOME)를 설명하는 표에 제공됩니다.

연산자 뒤의 값은 다중값 열의 모든 요소와 비교되는 단일 리터럴 값을 지정합니다. 요소가 값과 일치하는 경우 조건자는 true입니다.

비교 목록은 다중값 열과 비교되는 리터럴 값의 배열을 지정합니다. 비교 목록의 구문은 다음과 같습니다.

ARRAY '['<literal> [,<literal>]']'

중요

비교 목록 구문을 알고 있어야 합니다. 비교 목록을 구성하는 리터럴 그룹은 대괄호로 묶어야 합니다. 비교 목록의 개별 요소를 대괄호로 묶지 마세요. 따라서 ARRAY [1] 및 ARRAY [1,2,3]은 유효하지만 ARRAY [1[,2][,3]]은 유효하지 않습니다.

 

다중값 비교에서 true 또는 false를 반환하는지 여부를 확인하는 데 사용되는 메서드는 선택적 수량자에서 지정됩니다. 다음 섹션에서는 각 수량자와 수량자를 사용할 때 각 비교 연산자의 작동 방식에 대해 설명합니다.

부재 수량자

수량자를 지정하지 않으면 비교의 왼쪽에 있는 각 요소가 오른쪽의 동일한 위치에 있는 요소와 비교됩니다. 비교는 배열의 첫 번째 요소로 시작하고 마지막 요소를 진행합니다. 왼쪽의 모든 요소가 오른쪽에 있는 해당 요소와 동일한 경우 배열 요소의 수는 더 큰 배열을 결정하는 데 사용됩니다.

다음 표에서는 수량자가 지정되지 않은 경우 비교 연산자의 연산을 보여 하며 각각에 대한 간략한 설명을 제공합니다.

연산자 Description
= 'Equal to'는 각 왼쪽 요소의 값이 해당 오른쪽 요소와 동일하고 두 배열의 요소 수가 같으면 true를 반환합니다.
!= 또는 <> 'Not equal to'는 하나 이상의 왼쪽 요소에 해당하는 오른쪽 요소와 다른 값이 있거나 왼쪽 및 오른쪽 배열에 동일한 수의 요소가 없는 경우 true를 반환합니다.
> 각 왼쪽 요소의 값이 해당 오른쪽 요소의 값보다 크면 '보다 큼'은 true를 반환합니다. 모든 왼쪽 요소 값이 해당 오른쪽 요소와 정확히 일치하고 왼쪽 배열에 오른쪽 배열보다 더 많은 요소가 있는 경우 '보다 큼'은 true를 반환합니다.
>= 모든 왼쪽 요소의 값이 해당 오른쪽 요소의 값보다 크거나 같으면 '보다 크거나 같음'은 true를 반환합니다. 모든 왼쪽 요소 값이 해당 오른쪽 요소보다 크거나 같고 왼쪽 배열이 오른쪽 배열과 같거나 더 많은 요소를 가지면 '보다 큼'은 true를 반환합니다.
< 각 왼쪽 요소의 값이 해당 오른쪽 요소의 값보다 작으면 'Less than'은 true를 반환합니다. 'Less than'은 왼쪽에 오른쪽보다 적은 요소가 있는 경우에도 true를 반환합니다.
<= 모든 왼쪽 요소의 값이 해당 오른쪽 요소의 값보다 작거나 같으면 '작거나 같음'은 true를 반환합니다. 모든 왼쪽 요소 값이 해당하는 오른쪽 요소보다 크거나 같고 왼쪽 배열이 오른쪽 배열과 같거나 적은 요소를 가지면 '보다 큼'은 true를 반환합니다.

 

모든 수량자

ALL 수량자는 왼쪽의 각 요소가 오른쪽의 모든 요소와 비교되도록 지정합니다. true를 반환하려면 오른쪽의 모든 요소와 비교할 때 왼쪽의 각 요소에 대해 비교가 true여야 합니다. 왼쪽 및 오른쪽 배열 측면의 요소 수는 결과에 영향을 주지 않습니다.

다음 표에서는 각 비교 연산자가 ALL 수량자를 사용하여 작동하는 방법을 보여 줍니다.

연산자 Description
= 각 왼쪽 요소 값이 모든 오른쪽 요소 값과 같으면 'Equal to'는 true를 반환합니다.
!= 또는 <> 'Not equal to'는 왼쪽 요소 값 중 하나 이상이 오른쪽 요소 값과 다른 경우 true를 반환합니다.
> 각 왼쪽 요소 값이 모든 오른쪽 요소 값보다 크면 '보다 큼'은 true를 반환합니다.
>= 각 왼쪽 요소 값이 모든 오른쪽 요소 값보다 크거나 같으면 '보다 크거나 같음'은 true를 반환합니다.
< 'Less than'은 각 왼쪽 요소 값이 모든 오른쪽 요소 값보다 작으면 true를 반환합니다.
<= 각 왼쪽 요소 값이 모든 오른쪽 요소 값보다 작거나 같으면 '작거나 같음'은 true를 반환합니다.

 

SOME(또는 ANY) 수량자

SOME 수량자 및 ANY 수량자는 서로 바꿔 사용할 수 있습니다. ALL 수량자처럼 SOME 수량자는 왼쪽의 각 요소가 오른쪽의 모든 요소와 비교되도록 지정합니다. true를 반환하려면 오른쪽의 요소와 비교할 때 왼쪽에 있는 요소 중 하나 이상에 대해 비교가 true여야 합니다. 왼쪽 및 오른쪽 배열의 요소 수는 결과에 영향을 주지 않습니다.

다음 표에서는 각 비교 연산자가 SOME 수량자를 사용하여 작동하는 방법을 보여 줍니다.

연산자 Description
= 왼쪽 요소 값 중 하나 이상이 오른쪽 요소 값과 같으면 'Equal to'는 true를 반환합니다.
!= 또는 <> 왼쪽 요소 값이 오른쪽 요소 값과 동일하지 않으면 'Not equal to'는 true를 반환합니다.
> 'Greater than'은 왼쪽 요소 값 중 하나 이상이 오른쪽 요소 값 중 하나보다 크면 true를 반환합니다.
>= '보다 크거나 같음'은 왼쪽 요소 값 중 하나 이상이 오른쪽 요소 값 중 하나보다 크거나 같으면 true를 반환합니다.
< 'Less than'은 왼쪽 요소 값 중 하나 이상이 오른쪽 요소 값 중 하나보다 작은 경우 true를 반환합니다.
<= 왼쪽 요소 값 중 하나 이상이 오른쪽 요소 값 중 하나보다 작거나 같으면 '작거나 같음'은 true를 반환합니다.

 

예제

다음 예제에서는 문서가 "재무" 또는 "계획" 범주에 있는지 확인합니다.

SELECT System.ItemUrl FROM SystemIndex WHERE System.Category =
SOME ARRAY['Finance','Planning']

다음 비교는 모두 true로 평가됩니다. 실제로 검색 쿼리 구문을 사용하려면 왼쪽이 리터럴 값이 아닌 속성이어야 합니다.

ARRAY [1,2] > ARRAY [1,1]
ARRAY [1,2] > ARRAY [1,1,2]
ARRAY [1,2] < ARRAY [1,2,3]
ARRAY [1,2] = SOME ARRAY [1,12,27,35,2]
ARRAY [1,1] != ALL ARRAY [1,2]
ARRAY [1,20,21,22] < SOME ARRAY [0,40]
ARRAY [1,20,21,22] < ANY ARRAY [0,40]

참조

LIKE 조건자

리터럴 값 비교

NULL 조건자

개념

전체 텍스트 조건자

전체 텍스트가 아닌 조건자