espressione SQL

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Un'espressione è una formula che calcola un risultato in base a valori letterali o riferimenti a colonne, campi o variabili, usando funzioni o operatori.

Sintassi

{ 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 )

Le parentesi quadre in expr [ expr ] sono parentesi quadre effettive e non indicano la sintassi facoltativa.

Parametri

  • literal

    Valore letterale di un tipo descritto in Tipi di dati.

  • named_parameter_marker

    Segnaposto denominato e tipizzato per un valore fornito dall'API che invia l'istruzione SQL.

  • unnamed_parameter_marker

    Segnaposto senza nome e tipizzato per un valore fornito dall'API che invia l'istruzione SQL.

  • column_reference

    Riferimento a una colonna in un alias di tabella o colonna.

  • field_reference

    Riferimento a un campo in un tipo STRUCT.

  • parameter_reference

    Riferimento a un parametro di una funzione definita dall'utente SQL da con il corpo della funzione. Il riferimento può usare il nome non qualificato del parametro o qualificare il nome con il nome della funzione. I parametri costituiscono l'ambito più esterno durante la risoluzione degli identificatori.

  • Espressione CAST

    Espressione che esegue il cast dell'argomento in un tipo diverso.

  • Espressione CASE

    Espressione che consente la valutazione condizionale.

  • expr

    Espressione stessa che viene combinata con un operatoroggetto o che è un argomento di una funzione.

  • operator

    Operatore unario o binario.

  • expr [ expr ]

    Riferimento a un elemento di matrice o a una chiave della mappa.

  • function_invocation

    Chiamata di una funzione predefinita o definita dall'utente.

    Per informazioni dettagliate, vedere function_invocation .

  • ( expr )

    Precedenza applicata che esegue l'override della precedenza dell'operatore.

  • ( expr, expr [, ... ] )

    Crea un struct oggetto di due o più campi. Questa notazione è sinonimo della funzione struct.

  • scalar_subquery:

    • ( query )

      Espressione basata su una query che deve restituire una singola colonna e al massimo una riga.

Le pagine per ogni funzione e operatore descrivono i tipi di dati previsti dai relativi parametri. Azure Databricks esegue il cast implicito ai tipi previsti usando regole del tipo di dati SQL. Se un operatore o una funzione non è valido per l'argomento specificato, Azure Databricks genera un errore.

Per altre informazioni sulla risoluzione dei nomi, vedere Colonna, campo, parametro e risoluzione delle variabili.

Espressione costante

Espressione basata solo su valori letterali o funzioni deterministiche senza argomenti. Azure Databricks può eseguire l'espressione e usare la costante risultante in cui sono necessari valori letterali normali.

espressione booleana

Espressione con un tipo di risultato di BOOLEAN. Un'espressione booleana viene talvolta definita anche condizione o predicato.

Sottoquery scalare

Espressione del formato ( query ). La query deve restituire una tabella con una colonna e al massimo una riga.

Se la query non restituisce alcuna riga, il risultato è NULL. Se la query restituisce più righe, Azure Databricks restituisce un errore. In caso contrario, il risultato è il valore restituito dalla query.

Espressione semplice

Espressione che non contiene un queryoggetto , ad esempio una sottoquery scalare o un EXISTS predicato.

Esempi

> 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}}