

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Insertion des paramètres du jeu de données dans le code SQL personnalisé
<a name="dataset-parameters-insert-parameter"></a>

Vous pouvez insérer des paramètres de jeu de données dans le code SQL personnalisé d’un jeu de données en mode d’interrogation directe en le référençant avec `<<$parameter_name>>` dans l’instruction SQL. Lors de l’exécution, les utilisateurs du tableau de bord peuvent saisir des valeurs de contrôle de filtre associées à un paramètre de jeu de données. Ils peuvent ensuite voir les résultats dans les représentations visuelles du tableau de bord après la propagation des valeurs dans la requête SQL. Vous pouvez utiliser des paramètres pour créer des filtres de base basés sur les données du client dans les clauses `where`. Vous pouvez également ajouter des clauses `case when` ou `if else` pour modifier dynamiquement la logique de la requête SQL en fonction de l’entrée d’un paramètre.

Par exemple, disons que vous voulez ajouter une clause `WHERE` à votre requête SQL personnalisée qui filtre les données en fonction du nom de la région d’un utilisateur final. Dans ce cas, vous créez un paramètre à valeur unique appelé `RegionName` :

```
SELECT *
FROM transactions
WHERE region = <<$RegionName>>
```

Vous pouvez également laisser les utilisateurs fournir plusieurs valeurs au paramètre :

```
SELECT *
FROM transactions
WHERE region in (<<$RegionNames>>)
```

Dans l’exemple plus complexe suivant, un auteur de jeu de données renvoie deux fois à deux paramètres du jeu de données basés sur le prénom et le nom d’un utilisateur qui peuvent être sélectionnés dans un contrôle de filtre de tableau de bord :

```
SELECT Region, Country, OrderDate, Sales
FROM transactions
WHERE region=
(Case
WHEN <<$UserFIRSTNAME>> In 
    (select firstname from user where region='region1') 
    and <<$UserLASTNAME>> In 
    (select lastname from user where region='region1') 
    THEN 'region1'
WHEN <<$UserFIRSTNAME>> In 
    (select firstname from user where region='region2') 
    and <<$UserLASTNAME>> In 
    (select lastname from user where region='region2') 
    THEN 'region2'
ELSE 'region3'
END)
```

Vous pouvez également utiliser des paramètres dans des clauses `SELECT` pour créer de nouvelles colonnes dans un jeu de données à partir des entrées de l’utilisateur :

```
SELECT Region, Country, date, 
    (case 
    WHEN <<$RegionName>>='EU'
    THEN sum(sales) * 0.93   --convert US dollar to euro
    WHEN <<$RegionName>>='CAN'
    THEN sum(sales) * 0.78   --convert US dollar to Canadian Dollar
    ELSE sum(sales) -- US dollar
    END
    ) as "Sales"
FROM transactions
WHERE region = <<$RegionName>>
```

Pour créer une requête SQL personnalisée ou pour modifier une requête existante avant d’ajouter un paramètre de jeu de données, consultez la rubrique [Utilisation de SQL pour personnaliser les données](adding-a-SQL-query.md).

Lorsque vous appliquez une requête SQL personnalisée avec un paramètre du jeu de données, `<<$parameter_name>>` est utilisé comme valeur de remplacement. Lorsqu'un utilisateur choisit l'une des valeurs de paramètres dans un contrôle, Quick remplace l'espace réservé par les valeurs que l'utilisateur sélectionne sur le tableau de bord.

Dans l’exemple suivant, l’utilisateur saisit une nouvelle requête SQL personnalisée qui filtre les données par état :

```
select * from all_flights
where origin_state_abr = <<$State>>
```

La valeur par défaut du paramètre est appliquée à la requête SQL et les résultats apparaissent dans le **Volet Aperçu**.