Expression SQL
S’applique à : Databricks SQL Databricks Runtime
Une expression est une formule qui calcule un résultat basé sur des littéraux ou des références de colonne, de champ ou de variable à l’aide de fonctions ou d’opérateurs.
Syntaxe
{ literal |
named_parameter_marker |
unnamed_parameter_marker |
column_reference |
field_reference |
parameter_reference |
CAST expression |
CASE expression |
expr operator expr |
operator expr |
expr [ expr ] |
function_invocation |
( expr ) |
( expr, expr [, ... ] ) |
scalar_subquery }
scalar_subquery
( query )
Les crochets expr [ expr ]
sont des crochets réels et ils n’indiquent pas de syntaxe facultative.
Paramètres
literal
Littéral d’un type décrit dans Types de données.
-
Un espace réservé nommé et typé pour une valeur fournie par l'API qui soumet l'instruction SQL.
-
Un espace réservé non nommé et typé pour une valeur fournie par l'API qui soumet l'instruction SQL.
column_reference
Référence à une colonne dans un alias de table ou de colonne.
field_reference
Référence à un champ dans un type STRUCT.
-
Référence à un paramètre d’une fonction définie par l’utilisateur SQL à partir du corps de la fonction. La référence peut utiliser le nom non qualifié du paramètre ou qualifier le nom avec le nom de la fonction. Les paramètres constituent l’étendue la plus externe lors de la résolution des identificateurs.
-
Expression castant l’argument en un type différent.
-
Expression qui autorise une évaluation conditionnelle.
expr
Expression elle-même, qui est associée à un
operator
ou qui est un argument d’une fonction.-
Opérateur unaire ou binaire.
-
Référence à un élément de tableau ou une clé de mappage.
-
Un appel d’une fonction intégrée ou définie par l’utilisateur.
Pour plus d’informations, consultez function_invocation.
( expr )
Priorité appliquée qui remplace la priorité des opérateurs.
( expr, expr [, … ] )
Crée un
struct
de deux ou plusieurs champs. Cette notation est synonyme de la fonction struct.-
( query )
Expression basée sur une requête qui doit retourner une seule colonne et une ligne maximum.
Les pages de chaque fonction et opérateur décrivent les types de données attendus par leurs paramètres. Azure Databricks effectue un cast implicite en types attendus à l’aide des règles de type de données SQL. si un opérateur ou une fonction n’est pas valide pour l’argument fourni, Azure Databricks génère une erreur.
Pour plus d’informations sur la résolution de noms, consultez Résolution de colonnes, de champs, de paramètres et de variables.
Expression de constante
Expression basée uniquement sur des littéraux ou des fonctions déterministes sans arguments. Azure Databricks peut exécuter l’expression et utiliser une constante résultante où les littéraux habituels sont obligatoires.
expression booléenne
Expression avec le type de résultat BOOLEAN
. Une expression booléenne est également parfois appelée condition ou prédicat.
Sous-requête scalaire
Une expression de forme ( query )
. La requête doit retourner une table qui contient une colonne et une ligne maximum.
Si la requête ne retourne aucune ligne, le résultat est NULL
.
Si la requête retourne plusieurs lignes, Azure Databricks retourne une erreur.
Dans le cas contraire, le résultat est la valeur retournée par la requête.
Expression simple
Expression qui ne contient pas de query
, comme une sous-requête scalaire ou un prédicat EXISTS
.
Exemples
> SELECT 1;
1
> SELECT (SELECT 1) + 1;
2
> SELECT 1 + 1;
2
> SELECT 2 * (1 + 2);
6
> SELECT 2 * 1 + 2;
4
> SELECT substr('Spark', 1, 2);
Sp
> SELECT c1 + c2 FROM VALUES(1, 2) AS t(c1, c2);
3
> SELECT a[1] FROM VALUES(array(10, 20)) AS T(a);
20
> SELECT true;
true
> SELECT (c1, (c2, c3)) FROM VALUES(1, 2, 3) AS T(c1, c2, c3);
{"c1":1,"col2":{"c2":2,"c3":3}}