# Direct Discovery 字段列表

字段列表是以逗号分隔的字段规范列表，如 fieldname {, fieldname}。字段规范可以是字段名称，在此情况下，相同名称用于数据库列名称和字段名称。字段规范也可以是“字段别名”，在此情况下，数据库表达式或列名称被给予 Qlik Sense 字段名称。

字段名称既可以是简单名称也可以是引用名称。简单名称以字母 Unicode 字符为开头，后跟字母或数字字符或下划线的任意组合。引用名称以双引号为开头，并包含任意字符序列。如果引用名称包含双引号，则这些引号使用两个相邻的双引号表示。

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;

在本例中，Qlik Sense 在内部将 "STATEID" 列存储作为 "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;

在 LOAD 语句中不得使用 SUM。

Direct Discovery 也不支持在 Direct Query 语句中使用 Qlik Sense 函数。例如，当将 "Mth" 字段用作可视化的维度时，DIMENSION 字段的以下规范将无法使用：

month(ModifiedDate) as Mth