Contents
- 1 Функция ApplyCodepage (text, codepage)
- 2 Функция Capitalize (text)
- 3 Функция Chr (int)
- 4 Функция Evaluate (expression_text)
- 5 Функция FindOneOf (text, char_set [, n])
- 6 Функция Hash128 (expr, …)
- 7 Функция Hash160 (expr, …)
- 8 Функция Hash256 (expr, …)
- 9 Функция Index (text, substring [, n])
- 10 Функция KeepChar (text, keep_chars)
- 11 Функция Left (text, n)
- 12 Функция Len (text)
- 13 Функция Lower (text)
- 14 Функция LTrim (text)
- 15 Функция Mid (text, n1 [, n2])
- 16 Функция Ord (char)
- 17 Функция PurgeChar (text, remove_chars)
- 18 Функция Repeat (text, repeat_n)
- 19 Функция Replace (text, from_string, to_string)
- 20 Функция Right (text, n)
- 21 Функция RTrim (text)
- 22 Функция SubField (text, delimiter [, field_no=1])
- 23 Функция SubStringCount (text, sub_string)
- 24 Функция TextBetween (text, delimiter1, delimiter2 [, count=1])
- 25 Функция Trim (text)
- 26 Функция Upper (text)
В данной статье описаны строковые функции QlikView, которые используются в скрипте загрузки приложений QlikView для преобразования строковых данных. С помощью данных функций создаются различные алгоритмы обработки входных данных.
Функция ApplyCodepage (text, codepage)
Функция, с помощью которой можно перевести текст или поле таблицы из одной кодировки в другую (ANSI, OEM, MAC, UTF-8, Unicode)
Функция Capitalize (text)
Возвращает строку text со всеми словами с прописными буквами.
Пример:
1 2 |
capitalize ('my little pony') возвращает 'My Little Pony' capitalize ( 'AA bb cC Dd') возвращает 'Aa Bb Cc Dd |
Функция Chr (int)
Любой символ имеет код ASCII — кодировка для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Каждый символ имеет свой числовой код в диапазоне от 0 до 255 (один байт). Функция Chr преобразует код ASCII в строку.
Пример:
1 |
chr(65) возвращает строку 'A'. |
Функция Evaluate (expression_text)
Если текстовая строка expression_text является корректной формулой (выражением), то функция Evaluate возращает результат вычисления формулы. Если текстовая строка expression_text не является формулой или в ней имеются ошибки, будет возвращен NULL.
Пример:
1 |
evaluate ( 5 * 8 ) возвращает 40. |
Функция FindOneOf (text, char_set [, n])
Есть набор символов char_set, есть текстовая строка или поле text. Нужно найти номер позиции одного из символов char_set в строке text. По умолчанию берется первое вхождение, для того, чтобы указать на n-вхождение, то необходимо использовать параметр функции n. Если n вхождения нет, то возвращается первое вхождение. Если соответствующий символ не найден в строке text, то возвращается 0.
Пример:
1 2 3 |
FindOneOf( 'my example text string', 'et%s') возвращает '4'; FindOneOf( 'my example text string', 'et%s', 3) возвращает '12'; FindOneOf( 'my example text string', '¤%&') возвращает '0'. |
Функция Hash128 (expr, …)
Возвращает 128-разрядный хэш сочетания значений входного выражения. Результат — строка. Используется для создания ключей (полей, с помощью которых связываются таблицы в ассоциативной модели данных).
Примеры:
1 2 |
Hash128 ( 'abc', 'xyz', '123' ) Hash128 ( Region, Year, Month ) |
Функция Hash160 (expr, …)
Возвращает 160-разрядный хэш сочетания значений входного выражения. Результат — строка. Используется для создания ключей (полей, с помощью которых связываются таблицы в ассоциативной модели данных).
Примеры:
1 2 |
Hash160 ( 'abc', 'xyz', '123' ) Hash160 ( Region, Year, Month ) |
Функция Hash256 (expr, …)
Возвращает 256-разрядный хэш сочетания значений входного выражения. Результат — строка. Используется для создания ключей (полей, с помощью которых связываются таблицы в ассоциативной модели данных).
Примеры:
1 2 |
Hash256 ( 'abc', 'xyz', '123' ) Hash256 ( Region, Year, Month ) |
Функция Index (text, substring [, n])
Возвращает позицию n-вхождения подстроки substring в строке/поле text. По умолчанию n=1 и его не обязательно указывать (т.е. если параметр n отсутствует, используется первое вхождение). Если n — отрицательное число, поиск выполняется, начиная с конца строки text. Результат — целое число. Позиции строки пронумерованы, начиная с 1.
Примеры:
1 2 3 4 5 |
index( 'abcdefg', 'cd' ) возвращает 3 index( 'abcdabcd', 'b', 2 ) возвращает 6 index( 'abcdabcd', 'b', -2 ) возвращает 2 left( Date, index( Date,'-') -1 ), где Date = 1997-07-14, возвращает 1997 mid( Date, index( Date, '-', 2 ) -2, 2 ), где Date = 1997-07-14, возвращает 07 |
Функция KeepChar (text, keep_chars)
Возвращает строку text, сохраняя только те символы, которые имеются в строке keep_chars.
Пример:
1 2 |
keepchar ( 'a1b2c3','at29' ) возвращает 'a2' keepchar ( 'Ст;ро?3ка со$де7&р&ж*ит м#ус@ор','абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ ' ) возвращает 'Строка содержит мусор' |
Функция Left (text, n)
Возвращает первые n символов строки text. Результат — строка. Можно комбинировать с другими функциями, в том числе с Index.
Пример:
1 2 |
left('abcdef',3) возвращает 'abc'. left(Date, 4), где Date = 1997-07-14, возвращает 1997. |
Функция Len (text)
Длина строки text. Результат — целое число.
Пример:
1 |
len(Name), где Name = 'Peter', возвращает 5. |
Функция Lower (text)
Функция преобразует строку text в нижний регистр.
Пример:
1 |
lower( 'Эта СтРоКа СоДЕРЖит РазнЫЙ рЕгистР' ) возвращает 'эта строка содержит разный регистр'. |
Функция LTrim (text)
Удаляет пробелы с начала строки (строка text без начальных пробелов).
Пример:
1 2 |
ltrim ( ' abc' ) возвращает 'abc'; ltrim ( 'abc ' ) возвращает 'abc '. |
Функция Mid (text, n1 [, n2])
Подстрока строки text. Результат — строка, начинающаяся с символа n1 с длиной n2 символов. Если переменная n2 отсутствует, функция возвращает правую часть строки, начинающуюся с символа n1. Позиции строки пронумерованы, начиная с 1.
Пример:
1 2 3 4 |
mid('abcdef',3 ) возвращает 'cdef'; mid('abcdef',3, 2 ) возвращает 'cd'; mid( Date,3 ), где Date = 970714, возвращает 0714; mid( Date,3,2 ), где Date = 970714, возвращает 07. |
Более сложный пример приведен для в описании функции Index.
Функция Ord (char)
Возвращает код ASCII символа char. Если char является строкой, то возвращается код первого символа. Результат — целое число.
Пример:
1 2 |
ord('А') возвращает 1040 (кириллица); ord('А что если строка?') возвращает 1040. |
Функция PurgeChar (text, remove_chars)
Возвращает строку text кроме символов, содержащихся в строке remove_chars.
Пример:
1 |
purgechar ( 'a1b2c3','123' ) возвращает 'abc' |
Функция Repeat (text, repeat_n)
Создание строки, состоящей из строки text, повторенной repeat_n раз.
Пример:
1 |
repeat( ' * ', rating ), где rating = 4, возвращает '****'. |
Функция Replace (text, from_string, to_string)
Возвращает строку после замены всех вхождений определенной подстроки from_string в строке text на другую
подстроку to_string. Функция нерекурсивная и работает слева направо.
text — исходная строка.
from_string — подстрока, которую нужно заменить.
to_string — подстрока, на которую заменяется подстрока from_string.
Пример:
1 |
replace('abccde','cc','xyz') возвращает 'abxyzde' |
Функция Right (text, n)
Подстрока строки text. Результат — строка, содержащая последние n символов из строки text.
Пример:
1 2 |
right('abcdef',3 ) возвращает 'def'; right( Date,2 ), где Date = 1997-07-14, возвращает 14. |
Функция RTrim (text)
Возвращает строку text без конечных пробелов.
Пример:
1 |
rtrim ( ' abc ' ) возвращает ' abc'. |
Функция SubField (text, delimiter [, field_no=1])
В этой версии с тремя параметрами данная функция скрипта возвращает определенную подстроку из строки text с разделителем «delimiter». field_no — дополнительное целое число, обозначающее подстроку, которая должна быть возвращена. Если index отсутствует, при использовании subfield в выражении поля в операторе load функция subfield укажет оператору load на автоматическое создание одной полной записи для каждой подстроки в text.
В версии с двумя параметрами функция subfield создает одну запись для каждой подстроки, которая может быть получена для строки text большего размера с разделителем «delimiter». При использовании нескольких функций subfield в одном операторе load будет получено декартово произведение всех сочетаний.
Примеры:
1 2 3 4 5 6 |
SubField('abc;cde;efg',';') возвращает abc SubField('abc;cde;efg',';',2) возвращает cde SubField('abc;cde;efg',';',7) возвращает NULL SubField(S, ';' ,3) возвращает 'efg', если S — 'abc;cde;efg' SubField(S, ';' ,1) возвращает NULL, если S — пустая строка SubField(S, ';' ,1) возвращает пустую строк, если S — ';' |
Функция SubStringCount (text, sub_string)
Возвращает число раз, которое подстрока sub_string встречается в текстовой строке text. Результат — целое число. Если совпадения отсутствуют, возвращается 0.
Пример:
1 |
substringcount ( 'abcdefgcdxyz', 'cd' ) возвращает 2. |
Функция TextBetween (text, delimiter1, delimiter2 [, count=1])
TextBetween() возвращает текст входной строки, заключенный между символами, указанными в качестве разделителей.
text — Оригинальная строка.
delimiter1 — Указывает первый символ-разделитель (или строку) для поиска в text.
delimiter2 — Указывает второй символ-разделитель (или строку) для поиска в text.
n — Указывает, между каким вхождением пары разделителей выполнять поиск. Например, значение 2 возвращает символы между вторым вхождением delimiter1 и вторым вхождением delimiter2.
Примеры:
1 2 |
TextBetween('<abc>', '<', '>') Возвращает 'abc' TextBetween('<abc><de>', '<', '>',2) Возвращает 'de' |
Функция Trim (text)
Возвращает строку text без начальных и конечных пробелов.
Пример:
1 2 3 |
trim ( ' abc' ) возвращает 'abc'; trim ( 'abc ' ) возвращает 'abc'; trim ( ' abc ' ) возвращает 'abc'. |
Функция Upper (text)
Преобразует строку text в верхний регистр.
Пример:
1 |
upper( 'abcD' ) возвращает 'ABCD'. |
Leave a Reply