# Списки полей Direct Discovery

Список полей — это список спецификаций поля, разделенных запятыми: fieldname {, fieldname}. Спецификация поля может быть именем поля. В этом случае такое же имя используется для имени столбца базы данных и имени поля. Также спецификация поля может быть «полем alias». В этом случае выражению базы данных или имени столбца задается имя поля Qlik Sense.

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

Имена полей Qlik Sense используются с учетом регистра. Имена полей базы данных могут учитывать или не учитывать регистр, в зависимости от базы данных. Запрос Direct Discovery сохраняет регистр всех идентификаторов полей и псевдонимов. В следующем примере псевдоним "MyState" используется для внутренних целей для сохранения данных из столбца базы данных "STATEID".

```
DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
                
```

```
 
```

Это отличается от результата использования оператора SQL Select с псевдонимом. Если псевдоним не заключен в кавычки, результат будет содержать регистр по умолчанию столбца, возвращенного целевой базой данных. В следующем примере оператор SQL Select для базы данных Oracle создает "MYSTATE," со всеми буквами в верхнем регистре, как и внутренний псевдоним Qlik Sense, даже если в псевдониме используются символы в разном регистре. Оператор SQL Select использует имя столбца, возвращенное базой данных, которое в случае Oracle состоит из всех символов в верхнем регистре.

```
SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
                
```

Чтобы избежать такого поведения, для указания псевдонима используйте оператор LOAD.

Load STATEID as MyState, STATENAME;   
SQL Select STATEID, STATEMENT from STATE\_TABLE;

В данном примере столбец "STATEID" сохраняется Qlik Sense для внутренних целей в качестве "MyState".

Большинство скалярных выражений базы данных разрешено использовать в качестве спецификаций поля. Вызовы функций также можно использовать в качестве спецификаций поля. Выражения могут содержать константы: булевы, числовые или строки, заключенные в одиночные кавычки (встроенные одинарные кавычки представляются в виде двух смежных одинарных кавычек.).

Примеры:

DIRECT QUERY

DIMENSION

SalesOrderID, RevisionNumber

MEASURE

SubTotal AS "Sub Total"

FROM AdventureWorks.Sales.SalesOrderHeader;

DIRECT QUERY

DIMENSION

"SalesOrderID" AS "Sales Order ID"

MEASURE

SubTotal,TaxAmt,(SubTotal-TaxAmt) AS "Net Total"

FROM AdventureWorks.Sales.SalesOrderHeader;

DIRECT QUERY

DIMENSION

(2\*Radius\*3.14159) AS Circumference,

Molecules/6.02e23 AS Moles

MEASURE

Num1 AS numA

FROM TableName;

DIRECT QUERY

DIMENSION

concat(region, 'code') AS region\_code

MEASURE

Num1 AS NumA

FROM TableName;

Direct Discovery не поддерживает использование агрегирования в операторах LOAD. При использовании агрегирования результат может быть непредсказуемым. Оператор LOAD не следует использовать следующим образом:

DIRECT QUERY DIMENSION stateid, SUM(amount\*7) AS MultiFirst MEASURE amount FROM sales\_table;

SUM не следует использовать в операторе LOAD.

Direct Discovery также не поддерживает функции Qlik Sense в операторах Direct Query. Например, использование следующей спецификации для поля DIMENSION приведет к возникновению ошибки, когда поле "Mth" будет использоваться в качестве измерения в визуализации:

month(ModifiedDate) as Mth