Databricks SQL-expressie

Een expressie is een formule waarmee een resultaat wordt berekend op basis van letterlijke waarden of verwijzingen naar kolommen, velden of variabelen, met behulp van functies of operators.

Syntax

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

De haken in expr [ expr ] zijn werkelijke haken en geven geen optionele syntaxis aan.

Parameters

  • Letterlijke

    Een letterlijke letterlijke naam van een type dat wordt beschreven in gegevenstypen (Databricks SQL).

  • column_reference

    Een verwijzing naar een kolom in een tabel- of kolomalias.

  • field_reference

    Een verwijzing naar een veld in een STRUCT-type (Databricks SQL).

  • parameter_reference

    Een verwijzing naar een parameter van een door de SQL-gebruiker gedefinieerde functie met de hoofdtekst van de functie. De verwijzing kan de niet-gekwalificeerde naam van de parameter gebruiken of de naam kwalificeren met de functienaam. Parameters vormen het buitenste bereik bij het omzetten van id's.

  • CAST-expressie

    Een expressie die het argument naar een ander type gieten.

  • CASE-expressie

    Een expressie die voorwaardelijke evaluatie toestaat.

  • Expr

    Een expressie zelf die wordt gecombineerd met een operatorof een argument voor een functie.

  • Operator

    Een unaire of binaire operator.

  • expr [ expr ]

    Een verwijzing naar een matrixelement of een kaartsleutel.

  • function_invocation

    Een expressie die een ingebouwde of door de gebruiker gedefinieerde functie aanroept.

    Op de pagina's voor elke ingebouwde functie en operator worden de verwachte gegevenstypen beschreven. Databricks SQL voert impliciete cast-conversie uit naar verwachte typen met behulp van SQL-regels voor gegevenstypen (Databricks SQL). Als een operator of functie ongeldig is voor het opgegeven argument, genereert Databricks SQL een fout. Functies documenteer ook welke parameters verplicht of optioneel zijn.

    Wanneer u een door de SQL-gebruiker gedefinieerde functie aanroept, kunt u argumenten weglaten voor volgparameters als de parameters standaardwaarden hebben gedefinieerd.

  • ( expr )

    Prioriteit afgedwongen die de prioriteit van de operator overschrijft.

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

    Hiermee maakt u een struct van twee of meer velden. Deze notatie staat gelijk aan de structfunctie.

  • scalar_subquery:

    • ( query )

      Een expressie op basis van een query die één kolom en maximaal één rij moet retourneren.

Op de pagina's voor elke functie en operator worden de verwachte gegevenstypen beschreven. Databricks SQL voert impliciete cast-conversie uit naar verwachte typen met behulp van SQL-regels voor gegevenstypen (Databricks SQL). Als een operator of functie ongeldig is voor het opgegeven argument, genereert Databricks SQL een fout.

Constante expressie

Een expressie die alleen is gebaseerd op letterlijke of deterministische functies zonder argumenten. Databricks SQL kan de expressie uitvoeren en de resulterende constante gebruiken waarbij gewoonlijk letterlijke gegevens vereist zijn.

Booleaanse expressie

Een expressie met een resultaattype .BOOLEAN Een Booleaanse expressie wordt ook wel een voorwaarde of predicaat genoemd.

Scalaire subquery

Een expressie van het formulier ( query ). De query moet een tabel met één kolom en maximaal één rij retourneren.

Als de query geen rij retourneert, is NULLhet resultaat. Als de query meer dan één rij retourneert, retourneert Databricks SQL een fout. Anders is het resultaat de waarde die wordt geretourneerd door de query.

Eenvoudige expressie

Een expressie die geen , zoals een scalaire subquery of een EXISTS predicaat, bevatquery.

Voorbeelden

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