SQL-expressie

Van toepassing op:check marked yes Databricks SQL check marked yes 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.

Syntaxis

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

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

Parameters

  • Letterlijke

    Een letterlijke tekst van een type dat wordt beschreven in gegevenstypen.

  • named_parameter_marker

    Een benoemde en getypte tijdelijke aanduiding voor een waarde die wordt geleverd door de API die de SQL-instructie indient.

  • unnamed_parameter_marker

    Een niet-benoemde en getypte tijdelijke aanduiding voor een waarde die wordt geleverd door de API die de SQL-instructie indient.

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

  • CASE-expressie

    Een expressie die voorwaardelijke evaluatie toestaat.

  • Expr

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

  • operator

    Een unaire of binaire operator.

  • expr [ expr ]

    Een verwijzing naar een matrixelement of een kaartsleutel.

  • function_invocation

    Een aanroep van een ingebouwde of door de gebruiker gedefinieerde functie.

    Zie function_invocation voor meer informatie.

  • ( expr )

    Afgedwongen prioriteit die de prioriteit van de operator overschrijft.

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

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

  • 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-, parameter- en variabeleomzetting voor meer informatie over naamomzetting .

Constante expressie

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

Boole-expressie

Een expressie met een resultaattype .BOOLEAN Een Boole-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 Azure Databricks een fout. Anders is het resultaat de waarde die door de query wordt geretourneerd.

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