Fonctions de passage direct (RAWSQL)
Ces fonctions directes RAWSQL permettent d’envoyer des expressions SQL directement vers la base de données, sans qu’elles soient préalablement interprétées par Tableau. Si vous disposez de fonctions de bases de données personnalisées dont Tableau ne connaît pas l’existence, vous pouvez utiliser ces fonctions directes pour appeler ces fonctions personnalisées.
Le cas échéant, étant donné que Tableau n’interprète pas l’expression, vous devrez définir l’agrégation. Vous pouvez utiliser la version RAWSQLAGG d’une fonction lorsque vous avez besoin de transmettre une expression agrégée.
Il peut arriver que les fonctions directes RAWSQL ne fonctionnent pas avec des sources de données fédérées (combinées à travers différentes bases de données) ou des sources de données publiées.
Syntaxe RAWSQL
Les fonctions RAWSQL sont de deux types, désagrégé et agrégé. Ce type est spécifié dans la première partie du nom de la fonction, RAWSQL ou RAWSQLAGG. La dernière partie du nom de la fonction est le type de sortie, tel que BOOL, STR ou INT. Dans toutes les fonctions RAWSQL, l’argument est "sql_expr", [arg1], ...[arg2]. Lors de l’écriture de la fonction, vous pouvez utiliser une syntaxe de substitution %n pour insérer le nom de champ correct ou l’expression correcte.
Syntaxe de substitution %n
Votre base de données ne comprend généralement pas les noms de champs affichés dans Tableau. Dans la mesure où Tableau n’interprète pas les expressions SQL que vous incluez dans les fonctions directes, l’utilisation de noms de champs Tableau dans votre expression peut entraîner des erreurs. Utilisez %n pour insérer le nom de champ correct ou l’expression correcte pour un calcul Tableau dans une fonction directe SQL.
Par exemple, imaginez que vous disposez d’une fonction calculant la valeur médiane d’un ensemble de valeurs, vous pouvez l’appeler à partir de la colonne [Sales] de Tableau, comme suit :
RAWSQLAGG_REAL("MEDIAN(%1)", [Sales])REALSQLAGGparce que vous souhaitez spécifier l’agrégation.REALparce que la sortie est numérique et n’est pas nécessairement un entier.MEDIANdésigne l’agrégation.%1est l’espace réservé pour[Sales].
Fonctions RAWSQL
L’expression SQL est envoyée directement vers la base de données sous-jacente. Utilisez %n dans l’expression SQL comme syntaxe de substitution pour les valeurs de la base de données.
Les fonctions RAWSQL suivantes sont disponibles dans Tableau :
RAWSQL_BOOL
| Syntaxe | RAWSQL_BOOL("sql_expr", [arg1], …[argN]) |
| Sortie | Booléen |
| Définition | Renvoie un résultat booléen à partir d’une expression SQL donnée. |
| Exemple | RAWSQL_BOOL("%1 > %2", [Sales], [Profit])Dans cet exemple, %1 est égal à [Sales] et %2 est égal à [Profit]. |
RAWSQLAGG_BOOL
| Syntaxe | RAWSQLAGG_BOOL("sql_expr", [arg1], …[argN]) |
| Sortie | Booléen |
| Définition | Renvoie un résultat booléen à partir d’une expression SQL d’agrégation. |
| Exemple | RAWSQLAGG_BOOL("SUM( %1) >SUM( %2)", [Sales], [Profit]) Dans cet exemple, %1 est égal à [Sales] et %2 est égal à [Profit]. |
RAWSQL_DATE
| Syntaxe | RAWSQL_DATE("sql_expr", [arg1], …[argN]) |
| Sortie | Date |
| Définition | Renvoie un résultat de type Date à partir d’une expression SQL donnée. |
| Exemple | RAWSQL_DATE("%1", [Order Date])Dans cet exemple, %1 est égal à [Date Commande]. |
RAWSQLAGG_DATE
| Syntaxe | RAWSQLAGG_DATE("sql_expr", [arg1], …[argN]) |
| Sortie | Date |
| Définition | Renvoie un résultat de type Date à partir d’une expression SQL d’agrégation donnée. |
| Exemple | RAWSQLAGG_DATE("MAX(%1)", [Order Date])Dans cet exemple, %1 est égal à [Date Commande]. |
RAWSQL_DATETIME
| Syntaxe | RAWSQL_DATETIME("sql_expr", [arg1], …[argN]) |
| Sortie | Datetime |
| Définition | Renvoie un résultat de type Date et heure à partir d’une expression SQL donnée. |
| Exemple | RAWSQL_DATETIME("%1", [Order Date])Dans cet exemple, %1 est égal à [Date Commande]. |
RAWSQLAGG_DATETIME
| Syntaxe | RAWSQLAGG_DATETIME("sql_expr", [arg1], …[argN]) |
| Sortie | Datetime |
| Définition | Renvoie un résultat de type Date et heure à partir d’une expression SQL d’agrégation donnée. |
| Exemple | RAWSQLAGG_DATETIME("MIN(%1)", [Order Date])Dans cet exemple, %1 est égal à [Date Commande]. |
RAWSQL_INT
| Syntaxe | RAWSQL_INT("sql_expr", [arg1], …[argN]) |
| Sortie | Entier |
| Définition | Renvoie un résultat entier à partir d’une expression SQL donnée. |
| Exemple | RAWSQL_INT("500 + %1", [Sales])Dans cet exemple, %1 est égal à [Sales]. |
RAWSQLAGG_INT
| Syntaxe | RAWSQLAGG_INT("sql_expr", [arg1,] …[argN]) |
| Sortie | Entier |
| Définition | Renvoie un résultat de nombre entier à partir d’une expression SQL d’agrégation. |
| Exemple | RAWSQLAGG_INT("500 + SUM(%1)", [Sales])Dans cet exemple, %1 est égal à [Sales]. |
RAWSQL_REAL
| Syntaxe | RAWSQL_REAL("sql_expr", [arg1], …[argN]) |
| Sortie | Nombre |
| Définition | Renvoie un résultat numérique à partir d’une expression SQL donnée. |
| Exemple | RAWSQL_REAL("-123.98 * %1", [Sales])Dans cet exemple, %1 est égal à [Sales]. |
RAWSQLAGG_REAL
| Syntaxe | RAWSQLAGG_REAL("sql_expr", [arg1,] …[argN]) |
| Sortie | Nombre |
| Définition | Renvoie un résultat numérique à partir d’une expression SQL d’agrégation donnée. |
| Exemple | RAWSQLAGG_REAL("SUM( %1)", [Sales])Dans cet exemple, %1 est égal à [Sales]. |
RAWSQL_SPATIAL
| Syntaxe | RAWSQL_SPATIAL("sql_expr", [arg1], …[argN]) |
| Sortie | Graphiques spatiaux |
| Définition | Renvoie un résultat de données spatiales à partir d’une expression SQL donnée. |
| Exemple | RAWSQL_SPATIAL("%1", [Geometry])Dans cet exemple, %1 est égal à [Geometry]. |
| Remarque | Il n’y a pas de version RAWSQLAGG de cette fonction. |
RAWSQL_STR
| Syntaxe | RAWSQL_STR("sql_expr", [arg1], …[argN]) |
| Sortie | Chaîne |
| Définition | Renvoie une chaîne à partir d’une expression SQL donnée. |
| Exemple | RAWSQL_STR("%1", [Customer Name])Dans cet exemple, %1 est égal à [Customer Name]. |
RAWSQLAGG_STR
| Syntaxe | RAWSQLAGG_STR("sql_expr", [arg1,] …[argN]) |
| Sortie | Chaîne |
| Définition | Renvoie une chaîne à partir d’une expression SQL d'agrégation donnée. |
| Exemple | RAWSQLAGG_STR("AVG(%1)", [Discount])Dans cet exemple, %1 est égal à [Discount]. |
