Использование кавычек в скрипте

Существует несколько различных способов использования кавычек в операторах скриптов.

Внутри операторов 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.

Внеконтекстные ссылки на поля и ссылки на таблицы следует рассматривать как литералы, и поэтому их следует указывать в одиночных кавычках.

Различия между именами и литералами

Разница между именами и литералами становится очевидной при сравнении следующих примеров:

Example:  

'Sweden' as Country

Когда данное выражение является частью списка полей в операторе LOAD или SELECT, текстовая строка «Sweden» будет загружена в качестве значения поля в поле Qlik Sense «Country».

Example:  

"land" as Country

Когда данное выражение является частью списка полей в операторе LOAD или SELECT, содержимое поля базы данных или столбца таблицы с именем «land» будет загружено в качестве значения поля в поле Qlik Sense «Country». Это означает, что land будет рассматриваться как ссылка на поле.

Различия между числами и строковыми литералами

Разница между числами и строковыми литералами становится очевидной при сравнении следующих примеров.

Example:  

'12/31/96'

Если данная строка используется как часть выражения, в первом шаге она будет интерпретироваться как текстовая строка «12/31/96», которая в свою очередь может интерпретироваться как дата, если выбран формат даты «MM/DD/YY». В этом случае она будет храниться как двойное значение с числовым и текстовым представлениями.

Example:  

12/31/96

Когда эта строка используется как часть выражения, она будет интерпретироваться как числовое выражение, то есть как 12, деленное на 31, деленное на 96.

Использование кавычек в строке

Если строка содержит символы, которые можно использовать в качестве кавычек, важно точно указать начало и конец строки, заключаемой в кавычки. Неправильное проставление кавычек может привести к сбою скрипта или некорректной загрузке данных.

Существует два варианта использования кавычек для строки, содержащей кавычки.

Использование кавычек определенного вида для строки

Выберите кавычки того вида, который не используется внутри строки, и заключите в эти кавычки строку полностью. Qlik Sense будет использовать эти кавычки для определения начала и конца строки.

Заключить строку целиком можно в любые из следующих кавычек:

  • Двойные кавычки " "
  • Квадратные скобки [ ]
  • Апострофы ` `
  • Одиночные кавычки ' '

Example:  

[Таблица '1 "2"]

Строка заключается в квадратные скобки. Строка загружается в следующем виде: Таблица '1 "2"

'строка `Имя1` "Имя2'

Строка заключается в одиночные кавычки. Строка загружается в следующем виде: строка `Имя1` "Имя2

Использование escape-символов

Escape-символ — это дополнительное вхождение кавычек, в которые заключена строка. Такие символы следует добавлять при каждом вхождении кавычек в строке. Если в строке используются кавычки всех видов, необходимо расположить escape-символы рядом с теми кавычками, в которые заключена строка. Также escape-символы позволяют повторно использовать кавычки, которые уже содержатся в строке.

В качестве escape-символов можно использовать только следующие кавычки:

  • Двойные кавычки " "
  • Квадратные скобки [ ]
  • Одиночные кавычки ' '

Example:  

"Миша сказал ""Какой чудесный день""."

Если строка заключена в двойные кавычки " ", следует расположить дополнительные двойные кавычки рядом со всеми двойными кавычками, содержащимися в строке.

Строка загружается в следующем виде: Миша сказал: "Какой чудесный день". При помощи escape-символа "" редактор загрузки данных Qlik Sense определяет, какие двойные кавычки входят в состав строки, а какие указывают на конец строки. Одиночная кавычка ' в сокращении It's не должна сопровождаться escape-символом, так как она не используется для заключения строки в кавычки.

Example:  

'Миша сказал: "Какой чудесный день".'

Если строка заключена в одиночные кавычки, следует расположить дополнительную одиночную кавычку рядом с каждой одиночной кавычкой, содержащейся в строке.

Строка загружается в следующем виде: Миша сказал: "Какой чудесный день". Двойные кавычки ", в которые заключены слова Миши, не должны сопровождаться escape-символами, так как они не используются для заключения строки в кавычки.

Example:  

[Миша Сказал [Какой "чудесный день]].]

Квадратные скобки [ ] ведут себя иначе, чем кавычки двух других видов. Если необходимо использовать квадратные скобки в качестве escape-символов, следует расположить дополнительную квадратную скобку лишь рядом с правой скобкой ], а не с левой скобкой [.

Строка загружается в следующем виде: Миша сказал [Какой "чудесный день]. Только правая квадратная скобка ] сопровождается escape-символом. Одиночная кавычка ' и двойные кавычки, содержащиеся в строке, не должны сопровождаться escape-символами, так как они не используются для заключения строки в кавычки.