wildmatch — функция скриптa и диаграммы
Функция 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, Red | 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];
Первое выражение в таблице ниже возвращает 0 для значения «Stockholm», так как «Stockholm» не входит в список выражений в функции wildmatch. Выражение также возвращает 0 для значения «Boston», так как для ? совпадением является одиночный символ.
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 | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |