跳到主要内容 跳到补充内容

Direct Query

DIRECT QUERY 语句可让您使用 Direct Discovery 函数通过 ODBCOLE DB 连接访问表格。

语法:  

DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist[DETAIL fieldlist] FROM tablelist

[WHERE where_clause]

 

DIMENSIONMEASUREDETAIL 关键字可以按任何顺序使用。

DIMENSIONFROM 关键字子句在所有 DIRECT QUERY 语句中都是必需的。FROM 关键字必须在 DIMENSION 关键字后面。

DIMENSION 关键字后面直接指定的字段在内存中加载,并且可用于创建内存中数据与 Direct Discovery 数据之间的关联。

信息注释DIRECT QUERY 语句不能包含 DISTINCTGROUP BY 子句。

使用 MEASURE 关键字,您可以定义 QlikView 在“元级别”识别的字段。在数据加载过程中,度量字段的实际数据只驻留在数据库中,并且通过在图表中使用的图表表达式推动进行临时检索。

通常,具有用作维度离散值的字段应使用 DIMENSION 关键字加载,而只用于聚合的数字应使用 MEASURE 关键字来选择。

DETAIL 字段提供用户可能希望在“钻取至详细信息”表窗格中显示的信息或详细信息,如注释字段。DETAIL 字段不能用于图表表达式中。

按照设计,DIRECT QUERY 语句是数据源的中立数据源,用于支持 SQL。由于此原因,可以将同一 DIRECT QUERY 语句用于不同的 SQL 数据库,不需要进行任何更改。Direct Discovery 根据需要生成相应的数据库查询。

如果用户知道要查询的数据库并希望利用 SQL 的数据库特定扩展名,可以使用 NATIVE 数据源语法。支持 NATIVE 数据源语法:

  • 作为 DIMENSIONMEASURE 子句中的字段表达式
  • 作为 WHERE 子句的内容

示例:  

DIRECT QUERY 
    DIMENSION Dim1, Dim2 
    MEASURE 
    NATIVE ('X % Y') AS X_MOD_Y   
FROM TableName;
                
DIRECT QUERY
    DIMENSION Dim1, Dim2
    MEASURE X, Y
FROM TableName
WHERE NATIVE ('EMAIL MATCHES "\*.EDU"');
信息注释下列术语可用作关键字,因此不能用作列或字段名称,且没有引号: and, as, detach, detail, dimension, distinct, from, in, is, like, measure, native, not, or, where

参数:  

Direct query 参数
参数 说明
fieldlist

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

Direct Discovery 字段列表

tablelist

数据库中将从其中加载数据的表格或视图的名称列表。通常,这是包含对数据库执行 JOIN 的视图。

where_clause

此处没有定义数据库 WHERE 子句的完整语法,但允许使用大部分 SQL“关系表达式”,包括使用函数调用、字符串的 LIKE 运算符、IS NULLIS NOT NULL,不包括 IN. BETWEEN

NOT 是一元运算符,而非某些关键字的修饰符。

示例:  

WHERE x > 100 AND "Region Code" IN ('south', 'west')
WHERE Code IS NOT NULL and Code LIKE '%prospect'
WHERE NOT X in (1,2,3)

不能将最后一个示例写成如下所示:

WHERE X NOT in (1,2,3)

示例:  

在本例中,数据库表称为 TableName,包含使用的字段 Dim1Dim2Num1Num2Num3。将 Dim1Dim2 加载到 QlikView 数据集。

DIRECT QUERY DIMENSTION Dim1, Dim2 MEASURE Num1, Num2, Num3 FROM TableName ;
 

可将 Dim1Dim2 用作维度。Num1Num2Num3 均可用于聚合。Dim1Dim2 也可用于聚合。可以用于 Dim1Dim2 的聚合类型取决于其数据类型。例如,在很多情况下,DIMENSION 字段包含字符串数据,如名称或帐号。这些字段无法求和,但是可以对其进行计数:count(Dim1)

信息注释DIRECT QUERY 语句直接在脚本编辑器中编写。要简化 DIRECT QUERY 语句的结构,您可以从数据连接生成 SELECT 语句,然后编辑生成的脚本以将其更改成 DIRECT QUERY 语句。
例如,SELECT 语句:

SQL SELECT
SalesOrderID,
RevisionNumber,
OrderDate,
SubTotal,
TaxAmt
FROM MyDB.Sales.SalesOrderHeader;


无法更改为以下 DIRECT QUERY 语句:

DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber

MEASURE
SubTotal,
TaxAmt

DETAIL
OrderDate

FROM MyDB.Sales.SalesOrderHeader;

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!

加入分析现代化计划

Remove banner from view

使用分析现代化计划实现现代化,同时不损害您宝贵的 QlikView 应用程序。 单击此处 了解更多信息或联系: ampquestions@qlik.com