expression SQL Databricks

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 |
  column_reference |
  field_reference |
  CAST expression |
  CASE expression |
  expr operator expr |
  operator expr |
  function_invocation |
  ( expr ) |
  scalar_subquery }

scalar_subquery
  ( query )
  • literal: littéral d’un type décrit dans Databricks SQL types de données.
  • 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.
  • Expression de cast: expression castant l’argument en un type différent.
  • Expression case: expression qui autorise l’évaluation conditionnelle.
  • expr: expression elle-même, qui est associée à un operator , ou qui est un argument d’une fonction.
  • and
  • function_invocation: expression appelant une fonction intégrée ou définie par l’utilisateur
  • (expr): priorité appliquée qui remplace la priorité des opérateurs.
  • scalar_subquery:
    • ( requête ): expression basée sur une requête qui doit retourner une seule colonne et et au plus une ligne.

Notes

Les fonctions et les opérateurs attendent des types de données spécifiques sur lesquels ils opèrent et qui sont décrits avec la fonction ou l’opérateur respectif. Databricks SQL effectue un cast implicite en types attendus à l’aide de Databricks SQLde la priorité de type. si un opérateur ou une fonction n’est pas valide pour l’argument fourni, Databricks SQL génère une erreur.

Expression de constante

Expression qui est basée uniquement sur des littéraux ou des fonctions déterministes sans arguments. Databricks SQL peut exécuter l’expression et utiliser une constante résultante où les littéraux habituels sont requis.

expression booléenne

Expression avec le type de résultat BOOLEAN .

Sous-requête scalaire

Expression de la forme ( query ) . La requête doit retourner une table qui contient une colonne et au plus une ligne.

Si la requête ne retourne aucune ligne, le résultat est NULL . si la requête retourne plusieurs lignes, Databricks SQL 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 un query , tel qu’une sous-requête scalaire ou un EXISTS prédicat.

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
>