wildmatch - 스크립트 및 차트 함수
wildmatch 함수는 첫 번째 파라메타를 이후의 모든 파라메타와 비교하여 일치하는 표현식의 수를 반환합니다. 비교 문자열에서 와일드카드 문자( * 및 ?)의 사용을 허용합니다. *는 문자의 순서와 일치합니다. ?는 단일 문자와 일치합니다. 대/소문자는 구분되지 않습니다.
구문:
wildmatch( str, expr1 [ , expr2,...exprN ])
와일드카드 없이 비교를 사용하려면 match 또는 mixmatch 함수를 사용하십시오.
이 항목의 일부 예에서는 인라인 로드를 사용합니다. 인라인 로드
예: wildmatch를 사용한 로드 스크립트
로드 스크립트
wildmatch를 사용하여 데이터 하위 집합을 로드할 수 있습니다. 예를 들어 함수의 표현식에 대해 숫자 값을 반환할 수 있습니다. 그런 다음 숫자 값에 따라 로드된 데이터를 제한할 수 있습니다. 일치하는 값이 없는 경우 Wildmatch가 0을 반환합니다. 그러므로 이 예에서 일치되지 않는 모든 표현식은 0을 반환하고 WHERE 문에 따라 데이터 로드에서 제외됩니다.
데이터 로드 편집기에서 새 탭을 만든 후 다음 데이터를 인라인 로드로 로드합니다. 결과를 보려면 Qlik Sense에서 아래 테이블을 만듭니다.
Transactions: Load * Inline [ transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code 3750, 20180830, 23.56, 2, 2038593, L, Red 3751, 20180907, 556.31, 6, 203521, m, orange 3752, 20180916, 5.75, 1, 5646471, S, blue 3753, 20180922, 125.00, 7, 3036491, l, Black 3754, 20180922, 484.21, 13, 049681, xs, Red 3756, 20180922, 59.18, 2, 2038593, M, Blue 3757, 20180923, 177.42, 21, 203521, XL, Black ]; /* Create new table called Transaction_Buckets Create new fields called Customer, and Color code - Black, Blue, blue, red Load Transactions table. Wildmatch returns 1 for 'Black', 'Blue', and 'blue', and 2 for 'Red'. Only values that returned numeric value greater than 0 are loaded by WHERE statement into Transactions_Buckets table. */ Transaction_Buckets: Load customer_id, customer_id as [Customer], color_code as [Color Code Black, Blue, blue, Red] Resident Transactions Where wildmatch(color_code,'Bl*','R??') > 0;
결과
Color Code Black, Blue, blue | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
Blue | 5646471 |
Red | 049681 |
Red | 2038593 |
예: wildmatch를 사용한 차트 표현식
차트 표현식 1
데이터 로드 편집기에서 새 탭을 만든 후 다음 데이터를 인라인 로드로 로드합니다. 데이터를 로드한 후 아래의 차트 표현식 예를 Qlik Sense 테이블에 만듭니다.
MyTable: Load * inline [Cities, Count Toronto, 123 Toronto, 234 Toronto, 231 Boston, 32 Boston, 23 Boston, 1341 Beijing, 234 Beijing, 45 Beijing, 235 Stockholm, 938 Stockholm, 39 Stockholm, 189 zurich, 2342 zurich, 9033 zurich, 0039];
아래 테이블의 첫 번째 표현식은 'Stockholm'이 wildmatch 함수의 표현식 목록에 포함되어 있지 않기 때문에 Stockholm에 대해 0을 반환합니다. 또한 ?는 단일 문자에만 일치하기 때문에 'Boston'의 경우 0을 반환합니다.
Cities | wildmatch( Cities,'Tor*','?ton','Beijing','*urich') | wildmatch( Cities,'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|---|
Beijing |
3 |
3 |
Boston | 0 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 4 | 5 |
차트 표현식 2
사용자 지정 정렬 표현식을 수행하는 데 wildmatch를 사용할 수 있습니다.
기본적으로 열은 데이터에 따라 숫자순 또는 사전순으로 정렬됩니다.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
순서를 변경하려면 다음을 수행합니다.
- 속성 패널에서 차트에 대해 정렬 섹션을 엽니다.
- 사용자 지정 정렬을 수행하려는 열에 대해 자동 정렬을 끕니다.
- 숫자순 정렬 및 사전순 정렬을 선택 취소합니다.
-
정렬 표현식을 선택하고 다음과 유사한 표현식을 입력합니다.
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
Cities 열의 정렬 순서가 변경됩니다.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
또한 반환되는 숫자 값을 볼 수도 있습니다.
도시 | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |