SQL-expressie

Van toepassing op:gemarkeerd met ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime

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 vierkante haken in expr [ expr ] zijn werkelijke vierkante haken en geven geen optionele syntaxis aan.

Parameters

  • Letterlijke

    Een letterlijke waarde van een type dat wordt beschreven in Gegevenstypen.

  • column_reference

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

  • field_reference

    Een verwijzing naar een veld in een STRUCT-type.

  • parameter_reference

    Een verwijzing naar een parameter van een door een SQL-gebruiker gedefinieerde functie van 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 werpt.

  • CASE-expressie

    Een expressie die voorwaardelijke evaluatie mogelijk maakt.

  • Expr

    Een expressie zelf die wordt gecombineerd met een operator, of die een argument voor een functie is.

  • 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.

    De pagina's voor elke ingebouwde functie en operator beschrijven de gegevenstypen die hun parameters verwachten. Azure Databricks voert impliciete cast-conversie uit naar verwachte typen met behulp van SQL-gegevenstyperegels. Als een operator of functie ongeldig is voor het opgegeven argument, genereert Azure Databricks een fout. Functies documenteer ook welke parameters verplicht of optioneel zijn.

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

  • ( expr )

    Afgedwongen prioriteit die de prioriteit van de operator overschrijft.

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

    Hiermee maakt u een struct van twee of meer velden. Deze notatie is synoniem aan de struct-functie.

  • scalar_subquery:

    • ( query )

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

De pagina's voor elke functie en operator beschrijven de gegevenstypen die hun parameters verwachten. Azure Databricks voert impliciete cast-conversie uit naar verwachte typen met behulp van SQL-gegevenstyperegels. Als een operator of functie ongeldig is voor het opgegeven argument, genereert Azure Databricks een fout.

Zie Kolom-, veld- en parameteromzetting voor meer informatie over naamomzetting.

Constante expressie

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

Booleaanse expressie

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

Scalaire subquery

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

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

Eenvoudige expressie

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

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