Функции интерпретации Qlik Sense – синтаксис и пример
Сегодня мы поговорим о функциях интерпретации Qlik Sense. В этой главе включены все важные функции, используемые в Qlik Sense для интерпретации входных значений в определенном формате. Мы подробно обсудим каждую функцию интерпретации Qlik Sense с соответствующими примерами.
Функции интерпретации Qlik Sense – синтаксис и пример
Мы используем функции интерпретации Qlik Sense для интерпретации значений данных, вводимых в Qlik Sense, и их форматирования в определенном формате. По сути, мы интерпретируем строковые значения и преобразуем их в числовые. Это прямо противоположно тому, что делают функции форматирования, так как они, напомним, преобразуют числовые значения в строковые в определенном формате.
Хотя функции интерпретации также возвращают значения в двойном формате данных, то есть как строковую, так и числовую интерпретацию для одного входного значения. Оба вида ценностей имеют свое значение. В следующем разделе мы подробно обсудим все функции интерпретации Qlik Sense.
i. Функция Date#
Эта функция интерпретирует введенное текстовое значение для даты и возвращает числовое значение, соответствующее этому текстовому значению.
Синтаксис:
Date#(text[,format])
Где text – это строковое значение, которое вы хотите интерпретировать и преобразовать как числовое значение.
Итак, используя параметр формата, вы можете указать формат, в котором должна интерпретироваться текстовая строка.
Например, в приведенном ниже коде мы загрузили строковые значения для дат и хотим получить их числовые интерпретации.
Load *, Num(Date#(StringDate)) as Date; LOAD * INLINE [ StringDate 8/7/97 8/6/1997 ];
Итак, это вернет два поля, StringDate (строковое значение) и Date (числовое значение), где будут возвращены строковые значения и значения даты.
StringDate |
Данные |
8/7/97 |
35649 |
8/6/1997 |
35648 |
ii. Функция Interval#
Эта функция оценивает текстовое значение как временной интервал и возвращает для него соответствующее числовое значение.
Синтаксис:
Interval#(text[, format])
Где text – это строковое значение, которое вы хотите интерпретировать и преобразовать как числовое значение.
Используя параметр формата, вы можете указать формат, в котором должна интерпретироваться текстовая строка. Если нет определенного формата, тогда автоматически учитываются краткий формат даты (ГГ-ММ-ДД), формат времени (М/Д/ГГ) и десятичный разделитель (.) в операционной системе.
Например,
Interval#( T, ‘D hh:mm’ ) where T=’1 09:00′
Возвращает числовое значение 1,375, соответствующее строке «1 09:00».
iii. Функция Money#
Эта функция оценивает строковое значение для денежного формата и числовое значение, соответствующее строковому значению в этом конкретном формате.
Синтаксис:
Money#(text[, format[, dec_sep [, thou_sep ] ] ])
Где text – это строковое значение, которое вы хотите интерпретировать и преобразовать как числовое значение.
Используя параметр формата, вы можете указать формат, в котором должна интерпретироваться текстовая строка. Если формат не указан, автоматически учитываются параметры форматирования в операционной системе, такие как kr # ## 0,00 и $ #,## 0.00. dec_sep устанавливает десятичный разделитель, который будет разделять цифры. Если такой формат не указан, система использует значение MoneyDecimalSep, хранящееся в системе.
thou_sep устанавливает разделитель, который используется для разделения тысяч чисел. Если такой разделитель не указан, значит система использовала значение MoneyThousandSep.
Например,
Money#( M, ‘ $#’, ‘.’, ‘,’ ) where M= $35,648.50
Возвращает «35 648,50 долларов США» как строковое значение и 35648,50 как числовое значение.
iv. Функция Num#
Эта функция оценивает строку с числами, и оценивает их, чтобы вернуть соответствующие числовые значения.
Синтаксис:
Num#(text[, format[, dec_sep [, thou_sep ] ] ])
Где text – это строковое значение, которое вы хотите интерпретировать и преобразовать как числовое значение.
Итак, используя параметр формата, вы можете указать формат, в котором должна интерпретироваться текстовая строка. Если формат не указан, автоматически учитываются параметры форматирования в операционной системе, например # ## 0 и #, ## 0.
dec_sep устанавливает десятичный разделитель, который будет разделять цифры. Если такой формат не указан, система использует значение DecimalSep, хранящееся в системе.
thou_sep устанавливает разделитель, который используется для разделения тысяч чисел. Если такой разделитель не указан, то система использовала значение ThousandSep.
Например, приведенный ниже фрагмент кода:
Num#(N, ‘#.#’, ‘.’ , ‘,’) where N=35,648.50
возвращает 35 648,50 в виде строкового значения и 35648,50 в виде числового значения. Обратите внимание, что примененное форматирование применимо только к строковой части, а не к числовой части.
v. Функция Text#
Эта функция оценивает только строковое значение и не преобразует его в числовое значение. Она сохраняет значения только как текст.
Синтаксис:
Text(expr)
Например,
Text(Address) Where Address= FlatNo.152, Crystal Township, Delhi
Вернет только текстовое значение, например, «FlatNo.152, Crystal Township, Delhi». Никакой цифровой интерпретации, соответствующей этому, не будет.
Или,
Text( pi( ) )
вернет "3,1415926535898" как строковое значение.
vi. Функция Time#
Эта функция оценивает текстовое или строковое значение для формата времени и возвращает соответствующее ему числовое значение.
Синтаксис:
time#(text[, format])
Где text – это строковое значение, которое вы хотите интерпретировать и преобразовать как числовое значение.
Используя параметр формата, вы можете указать формат, в котором должна интерпретироваться текстовая строка. Если формат не указан, то автоматически учитываются форматы, хранящиеся по умолчанию, такие как чч:мм:сс и в операционной системе.
Например,
time#( T ) where T=09:00:00
Возвращает строковое значение как «09: 00: 00» и соответствующее ему числовое значение, равное 0,375.
vii. Функция Timestamp#
Эта функция оценивает строку в формате даты и времени (делая отметку времени) и возвращает соответствующее ей числовое значение.
Синтаксис:
timestamp#(text[, format])
Где text – это строковое значение, которое вы хотите интерпретировать и преобразовать как числовое значение.
Используя параметр формата, вы можете указать формат, в котором должна интерпретироваться текстовая строка. Если мы не указываем формат, он автоматически учитывает форматы по умолчанию, такие как чч:мм:сс и краткий формат даты (ГГ-ММ-ДД), формат времени (М/Д/ГГ) и десятичный разделитель (.).
Например,
Load *, Timestamp(Timestamp#(String)) as TS; LOAD * INLINE [ StringValue 2015-09-15T12:13:14 1952-10-16T13:14:00+0200 1109-03-01T14:15 ];
Возвращает строковые и числовые значения для каждого значения данных, введенного в строку.
StringValue |
TS |
2015-09-15T12:13:14 |
9/15/2015 12:13:14 PM |
1952-10-16T13:14:00+0200 |
10/16/1952 11:14:00 AM |
1109-03-01T14:15 |
3/1/1109 2:15:00 PM |