Éditeur de requêtes pour les sources de données

Créez des requêtes de source de données pour les widgets de table et de graphique afin de sélectionner des données spécifiques dans une base de données. Les requêtes sont construites sous la forme d'un champ de base de données suivi du signe = et d'un opérateur, d'un nombre ou d'une chaîne de caractères :

database_string=my string
database_number=1234
database_numger=BETWEEN(3, 6)

Les requêtes peuvent être enrichies par du code JavaScript spécifique :

  • Calcul de l'heure et de la date avec momentjs

Opérateurs

Opérateur

Description de l'opérateur

BETWEEN()

Étendue de la valeur de départ à la valeur finale. Les valeurs de début et de fin sont séparées par des virgules.

IN()

Liste de nombres ou de chaînes de caractères séparés par des virgules à comparer.

GT()

Supérieur à la valeur

LT()

Inférieur à la valeur

NOT()

Négation d'une expression

AND()

Liste d'expressions séparées par des virgules. Toutes doivent être remplies

OR()

Liste d'expressions séparées par des virgules. Au moins une expression doit être remplie

NULL()

Vérifie si une valeur est NULL

Exemples

Sélectionner tous les enregistrements dont le salaire est supérieur à 40000 :

salary=GT(40000)

Sélectionner tous les enregistrements dont le nom est différent de James, John et Joe:

name=NOT(IN(James%2CJohn%2CJoe))

Sélectionner tous les enregistrements dont l'identifiant client n'est pas NULL :

customerId=NOT(NULL())

Les virgules dans les arguments doivent être échappées :

. -> %2C

Ceci est nécessaire si des opérateurs imbriqués sont utilisés comme dans l'exemple ci-dessus.

Exemples avec momentjs

Dans les exemples suivants, params.interval est défini par un widget Sélecteur de date

Sélectionner uniquement les enregistrements dont la date est comprise entre les paramètres date/heure de début et de fin fournis par un widget de sélection de date. begin, end et format() sont utilisés à partir de la bibliothèque momentjs :

date=BETWEEN(${interval(params.interval).begin.format()}, ${interval(params.interval).end.format()})

Sélectionner des enregistrements datant d'un an plus tôt :

year=${interval(params.interval).begin.subtract(1, 'years').format('YYYY')}

Interroger le même mois un an auparavant avec le mois formaté sans les zéros initiaux :

month=${interval(params.interval).begin.subtract(params.sub, 'years').format('M')}

Interroger le jour de la semaine (0-6) :

weekday=${interval(params.interval).begin.day()}

Requête dépendant d'un paramètre

Si une requête ne doit être appliquée que si un paramètre spécifique est défini (par exemple, une requête de matrice de filtrage), la colonne ainsi que la chaîne de requête peuvent être enveloppées dans des instructions if :

${filterMatrix.device_name ? 'device_name' : 'none'}=${filterMatrix.device_name ? filterMatrix.device_name : ''}

Si le paramètre filterMatrix.device_name est défini, la colonne sera définie sur 'device_name' et la chaîne de requête sur 'filterMatrix.device_name') :

device_name=filterMatrix.device_name

Si le même paramètre n'est pas défini, la requête résultante sera configurée pour la colonne probablement inexistante "none" :

 none=''