Accéder au contenu principal

Listes de champs Direct Discovery

Une liste de champs est une liste dont les spécifications de champ sont séparées par des virgules, fieldname {, fieldname}. Une spécification de champ peut correspondre à un nom de champ, auquel cas le même nom est utilisé pour le nom de colonne dans la base de données et le nom de champ. Une spécification de champ peut également désigner un alias de champ, auquel cas un nom de colonne ou d'expression de base de données se voit attribuer un nom de champ QlikView.

Les noms de champ peuvent correspondre soit à de simples noms soit à des noms placés entre guillemets. Un nom simple commence par un caractère Unicode alphabétique suivi d'une combinaison quelconque de caractères alphabétiques ou numériques, ou de traits de soulignement. Les noms placés entre guillemets commencent par un guillemet double et contiennent n'importe quelle séquence de caractères. Si un nom entre guillemets contient des guillemets doubles, ces guillemets sont représentés à l'aide de deux guillemets doubles adjacents.

Les noms des champs QlikView respectent la casse des caractères. La sensibilité à la casse des noms des champs de base de données varie en fonction de la base de données utilisée. La fonction de requête Direct Discovery préserve la casse de tous les alias et identificateurs de champ. Dans l'exemple suivant, l'alias "MyState" st utilisé en interne pour stocker les données provenant de la colonne de base de données "STATEID".

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

Cet exemple diffère du résultat d'une instruction SQL Select comportant un alias. Si l'alias n'est pas placé entre guillemets de manière explicite, le résultat applique la casse de colonne par défaut renvoyée par la base de données cible. Dans l'exemple suivant, l'instruction SQL Select adressée à une base de données Oracle crée "MYSTATE,", tout en majuscules, comme alias QlikView interne, même si l'alias est spécifié comme étant de casse mixte. L'instruction SQL Select utilise le nom de colonne renvoyé par la base de données, ce qui, dans le cas d'Oracle, signifie un nom en majuscules.

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

Afin d'éviter ce comportement, utilisez l'instruction LOAD pour spécifier l'alias.

Load STATEID as MyState, STATENAME;
SQL Select STATEID, STATEMENT from STATE_TABLE;
 

Dans cet exemple, la colonne "STATEID" est stockée en interne par QlikView sous la forme "MyState".

La plupart des expressions scalaires de base de données sont autorisées en tant que spécifications de champ. Les appels de fonction peuvent aussi être utilisés dans les spécifications de champ. Les expressions peuvent contenir des constantes de type booléen, numérique ou chaîne placée entre guillemets simples (les guillemets simples incorporés sont représentés par des guillemets simples adjacents).

 

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

La fonction Direct Discovery ne prend pas en charge l'utilisation d'agrégations dans les instructions LOAD. Si des agrégations sont employées, les résultats seront imprévisibles. Il est vivement déconseillé d'utiliser une instruction LOAD de ce type :

DIRECT QUERY DIMENSION stateid, SUM(amount*7) AS MultiFirst MEASURE amount FROM sales_table

SUM ne devrait pas figurer dans l'instruction LOAD.

Direct Discovery ne prend pas non plus en charge les fonctions QlikView dans les instructions Direct Query. Par exemple, la spécification suivante définie pour un champ de type DIMENSION se solde par un échec lorsque le champ "Mth" est utilisé comme dimension dans un graphique :

month(ModifiedDate) as Mth

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !

Rejoignez le Programme de modernisation analytique

Remove banner from view

Modernisez votre système sans compromettre vos précieuses applications QlikView grâce au Programme de modernisation analytique. Cliquez ici pour plus d'informations ou contactez : ampquestions@qlik.com