집합 수정자
집합은 추가 또는 변경된 선택에 의해 수정될 수 있습니다. 이러한 수정은 집합 표현식으로 작성할 수 있습니다.
수정자는 하나 또는 여러 개의 필드 이름으로 구성되어 있는데, 각 필드 이름 다음에는 필드에 적용해야 하는 선택이 나오며, 모든 요소가 <와 >로 묶여야 합니다. 예: <Year={2007,+2008},Region={US}>. 필드 이름 및 필드 값은 일반적으로 사용되는 인용 부호로 묶을 수 있습니다(예: <[Sales Region]={’West coast’, ’South America’}>).
집합 수정자는 이전 집합 식별자의 선택 내용을 수정합니다. 집합 식별자를 참조하지 않는 경우 현재 선택 상태는 암시적입니다.
다음에 설명된 것처럼 선택을 정의하는 방법은 여러 가지가 있습니다.
다른 필드 기반
단순한 방법은 다른 필드의 선택된 값을 기준으로 선택하는 것입니다(예: <OrderDate = DeliveryDate>). 이 수정자는 DeliveryDate에서 선택된 값을 가져와 OrderDate에 선택 내용으로 적용합니다. 고유 값(수백 개 이상)이 많을 경우 이 연산은 CPU에 부하를 주므로 피해야 합니다.
요소 집합 기반
집합 표현식의 가장 일반적인 예는 중괄호로 묶인 필드 값의 목록을 기반으로 하는 것입니다. 값은 쉼표로 구분됩니다(예: <Year = {2007, 2008}>). 중괄호는 요소 집합을 정의하며, 요소는 명시적 필드 값 또는 필드 값의 검색 중 하나가 될 수 있습니다.
나열된 값에 공백이나 특수 문자가 포함되어 있지 않으면 따옴표가 필요하지 않습니다. 나열된 값은 필드 값과 간단히 일치합니다. 대소문자는 구분되지 않습니다.
나열된 값에 공백이나 특수 문자가 포함되어 있거나 와일드카드를 사용하려면 값을 따옴표로 묶어야 합니다. 나열된 값이 명시적인 필드 값인 경우 작은따옴표를 사용해야 합니다. 그러면 나열된 값과 개별 필드 값이 대소문자를 구분하여 일치합니다.
검색의 경우, 즉 와일드카드를 포함하거나 관계형 연산자 또는 등호 기호로 시작하는 문자열은 큰따옴표를 사용해야 합니다. 예를 들어 <Ingredient = {"*Garlic*"}>은 문자열 'Garlic'을 포함하는 모든 성분을 선택합니다. 큰따옴표는 괄호(예: <Ingredient = {[*Garlic*]}>)로 대체할 수 있습니다. 또한 큰따옴표는 억음 악센트 기호(예: <Ingredient = {`*Garlic*`}>)로 대체할 수 있습니다. 검색은 대소문자를 구분하지 않습니다.
QlikView의 이전 버전에서는 큰따옴표, 작은따옴표의 구분 없이 따옴표로 묶은 모든 문자열이 검색으로 처리되었습니다. 이전 버전과의 호환성을 유지하기 위해 QlikView의 이전 버전으로 만든 문서는 이전 버전과 동일하게 작동합니다. QlikView 2017년 11월 이후 버전으로 만든 문서는 두 가지 따옴표 유형 간의 차이를 구분합니다.
강제 제외
마지막으로, AND 모드의 필드의 경우 강제 제외의 가능성도 있습니다. 특정 필드 값의 제외를 강제하려는 경우 필드 이름 앞에 “~”를 사용해야 합니다.
예 및 결과:
예 | 결과 |
---|---|
sum( {1<Region= {USA} >} Sales ) | 현재 선택 내용을 무시하고 USA 지역의 판매량을 반환합니다. |
sum( {$<Region = >} Sales ) | Region의 선택을 제거하고 현재 선택의 판매량을 반환합니다. |
sum( {<Region = >} Sales ) |
바로 위 예와 동일한 내용을 반환합니다. 수정할 집합이 생략된 경우 $로 간주됩니다. 정보 메모이전의 두 예에 표시된 구문은 'Region'이 "선택 없음"으로 해석됩니다. 즉, 다른 선택이 지정된 모든 지역을 사용할 수 있습니다. 이는 지역 없음으로 해석되는 구문 <Region = {}>(또는 등호의 오른쪽에 암시적으로 빈 요소 집합을 반환하는 다른 텍스트 지정)과는 다릅니다.
|
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) | 'Year' 및 'Region' 모두에 새로운 선택 내용을 적용하여 현재 선택의 판매량을 반환합니다. |
sum( {$<~Ingredient = {“*garlic*”}>} Sales ) |
Ingredient 필드는 AND 모드입니다. 문자열 'garlic'’을 포함하는 모든 재료를 강제 제외하고 현재 선택의 판매량을 반환합니다. |
sum( {$<Year = {“2*”}>} Sales ) | 'Year' 필드에서 숫자 "2"로 시작하는 모든 연도(즉, 2000년과 그 이후 연도일 가능성이 높음)를 선택하고 현재 선택의 판매량을 반환합니다. |
sum( {$<Year = {“2*”,”198*”}>} Sales ) | 위와 같으나 1980년대도 선택에 포함됩니다. |
sum( {$<Year = {“>1978<2004”}>} Sales ) | 현재 선택의 판매량을 반환하지만, 연도 범위를 지정하는 데 사용된 숫자 검색을 통해 전체 판매량의 합계를 구합니다. |
텍스트 개체와 같은 개체에서 특정 필드 값을 강제로 제외하려면 스크립트 구문을 수정해야 합니다. 예를 들어, 스크립트 문이 다음과 같은 경우
=count({<ANDActor=>}DISTINCT Title)
다음과 같이 수정합니다.
=count({<~ANDActor=, ANDActor=>} DISTINCT Title)