Использование кавычек в скрипте
Существует несколько различных способов использования кавычек в операторах скриптов.
Внутри операторов LOAD
В операторе LOAD в качестве кавычек можно использовать указанные ниже символы:
Описание | Символ | Кодовая точка | Пример |
---|---|---|---|
двойные кавычки |
" " | 34 | "строка" |
квадратные скобки | [ ] | 91, 93 | [строка] |
апострофы | ` ` | 96 | `строка` |
Описание | Символ | Кодовая точка | Пример |
---|---|---|---|
одиночные кавычки |
' ' |
39 | 'строка' |
В операторах SELECT
Для оператора SELECT, интерпретируемого драйвером ODBC, доступны различные варианты использования. Обычно для названий полей и таблиц следует использовать прямые двойные кавычки (Alt + 0034), а для литералов — прямые одиночные кавычки (Alt + 0039) и не следует использовать апострофы. Однако в некоторых драйверах ODBC использование апострофов не только допускается, но и считается предпочтительным. В таком случае созданные операторы SELECT содержат апострофы в качестве символов кавычек.
Пример кавычек в Microsoft Access
Microsoft Access ODBC Driver 3.4 (входящий в Microsoft Access 7.0) во время анализа оператора SELECT принимает следующие кавычки:
Имена полей и имена таблиц:
- [ ]
- " "
- ` `
Строковые литералы:
- ' '
В других базах данных могут применяться другие обозначения.
Вне операторов LOAD
Снаружи оператора LOAD, там, где программа Qlik Sense ожидает выражение, двойные кавычки обозначают ссылку на переменную, а не на поле. Если вы используете двойные кавычки, строка внутри кавычек будет интерпретироваться как переменная, значение которой будет использовано.
Ссылки на поле и ссылки на таблицы вне контекста
В некоторых функциях скрипта указываются ссылки на ранее созданные поля или на поля, которые являются результатом выполнения оператора LOAD, например Exists() и Peek(). Эти ссылки на поля называются внеконтекстными ссылками на поля, в отличие от ссылок на исходные поля, которые ссылаются на поля, находящиеся в контексте, то есть во входной таблице оператора LOAD.
Внеконтекстные ссылки на поля и ссылки на таблицы следует рассматривать как литералы, и поэтому их следует указывать в одиночных кавычках.
Различия между именами и литералами
Разница между именами и литералами становится очевидной при сравнении следующих примеров:
Пример:
'Sweden' as Country
Когда данное выражение является частью списка полей в операторе LOAD или SELECT, текстовая строка «Sweden» будет загружена в качестве значения поля в поле Qlik Sense «Country».
Пример:
"land" as Country
Когда данное выражение является частью списка полей в операторе LOAD или SELECT, содержимое поля базы данных или столбца таблицы с именем «land» будет загружено в качестве значения поля в поле Qlik Sense «Country». Это означает, что land будет рассматриваться как ссылка на поле.
Различия между числами и строковыми литералами
Разница между числами и строковыми литералами становится очевидной при сравнении следующих примеров.
Пример:
'12/31/96'
Если данная строка используется как часть выражения, в первом шаге она будет интерпретироваться как текстовая строка "12/31/96", которая в свою очередь может интерпретироваться как дата, если выбран формат даты 'MM/DD/YY'. В этом случае она будет храниться как двойное значение с числовым и текстовым представлениями.
Пример:
12/31/96
Когда эта строка используется как часть выражения, она будет интерпретироваться как числовое выражение, то есть как 12, деленное на 31, деленное на 96.
Использование кавычек в строке
Если строка содержит символы, которые можно использовать в качестве кавычек, важно точно указать начало и конец строки, заключаемой в кавычки. Неправильное проставление кавычек может привести к сбою скрипта или некорректной загрузке данных.
Существует два варианта использования кавычек для строки, содержащей кавычки.
Использование кавычек определенного вида для строки
Выберите кавычки того вида, который не используется внутри строки, и заключите в эти кавычки строку полностью. Qlik Sense будет использовать эти кавычки для определения начала и конца строки.
Заключить строку целиком можно в любые из следующих кавычек:
- Двойные кавычки " "
- Квадратные скобки [ ]
- Апострофы ` `
- Одиночные кавычки ' '
Пример:
[Table '1 "2"]
Строка заключается в квадратные скобки. Строка загружается в следующем виде: Таблица '1 "2"
'string `Name1` "Name2'
Строка заключается в одиночные кавычки. Строка загружается в следующем виде: строка `Имя1` "Имя2
Использование escape-символов
Escape-символ — это дополнительное вхождение кавычек, в которые заключена строка. Такие символы следует добавлять при каждом вхождении кавычек в строке. Если в строке используются кавычки всех видов, необходимо расположить escape-символы рядом с теми кавычками, в которые заключена строка. Также escape-символы позволяют повторно использовать кавычки, которые уже содержатся в строке.
В качестве escape-символов можно использовать только следующие кавычки:
- Двойные кавычки " "
- Квадратные скобки [ ]
- Одиночные кавычки ' '
Пример:
"Michael said ""It's a beautiful day""."
Если строка заключена в двойные кавычки " ", следует расположить дополнительные двойные кавычки рядом со всеми двойными кавычками, содержащимися в строке.
Строка загружается в следующем виде: Миша сказал: "Какой чудесный день". При помощи escape-символа "" редактор загрузки данных Qlik Sense определяет, какие двойные кавычки входят в состав строки, а какие указывают на ее конец. Одиночная кавычка ' в сокращении It's не должна сопровождаться escape-символом, так как она не используется для заключения строки в кавычки.
Пример:
'Michael said: "It''s a beautiful day".'
Если строка заключена в одиночные кавычки, следует расположить дополнительную одиночную кавычку рядом с каждой одиночной кавычкой, содержащейся в строке.
Строка загружается в следующем виде: Миша сказал: "Какой чудесный день". Двойные кавычки ", в которые заключены слова Миши, не должны сопровождаться escape-символами, так как они не используются для заключения строки в кавычки.
Пример:
[Michael said [It's a "beautiful day]].]
Квадратные скобки [ ] ведут себя иначе, чем кавычки двух других видов. Если необходимо использовать квадратные скобки в качестве escape-символов, следует расположить дополнительную квадратную скобку лишь рядом с правой скобкой ], а не с левой скобкой [.
Строка загружается в следующем виде: Миша сказал [Какой "чудесный день]. Только правая квадратная скобка ] сопровождается escape-символом. Одиночная кавычка ' и двойные кавычки, содержащиеся в строке, не должны сопровождаться escape-символами, так как они не используются для заключения строки в кавычки.