SQL-uttryck

Gäller för:check marked yes Databricks SQL check marked yes Databricks Runtime

Ett uttryck är en formel som beräknar ett resultat baserat på literaler eller referenser till kolumner, fält eller variabler med hjälp av funktioner eller operatorer.

Syntax

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

Hakparenteserna i expr [ expr ] är faktiska hakparenteser och anger inte valfri syntax.

Parametrar

  • Bokstavlig

    En literal av en typ som beskrivs i Datatyper.

  • named_parameter_marker

    En namngiven och typad platshållare för ett värde som tillhandahålls av API:et som skickar SQL-instruktionen.

  • unnamed_parameter_marker

    En namnlös och inskriven platshållare för ett värde som tillhandahålls av API:et som skickar SQL-instruktionen.

  • column_reference

    En referens till en kolumn i ett tabell- eller kolumnalias.

  • field_reference

    En referens till ett fält i en STRUCT-typ.

  • parameter_reference

    En referens till en parameter för en SQL-användardefinierad funktion från med funktionens brödtext. Referensen kan använda parameterns okvalificerade namn eller kvalificera namnet med funktionsnamnet. Parametrar utgör det yttersta omfånget vid matchning av identifierare.

  • CAST-uttryck

    Ett uttryck som gjuter argumentet till en annan typ.

  • CASE-uttryck

    Ett uttryck som tillåter villkorsstyrd utvärdering.

  • Uttryck

    Ett uttryck i sig som kombineras med en operator, eller som är ett argument till en funktion.

  • operator

    En unary- eller binär operator.

  • expr [ expr ]

    En referens till ett matriselement eller en kartnyckel.

  • function_invocation

    Ett anrop av en inbyggd eller användardefinierad funktion.

    Mer information finns i function_invocation .

  • ( uttr )

    Framtvingad prioritet som åsidosätter operatorprioret.

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

    Skapar ett struct av två eller flera fält. Den här notationen är synonymt med funktionen struct.

  • scalar_subquery:

    • ( fråga )

      Ett uttryck baserat på en fråga som måste returnera en enskild kolumn och högst en rad.

Sidorna för varje funktion och operator beskriver de datatyper som deras parametrar förväntar sig. Azure Databricks utför implicit gjutning till förväntade typer med hjälp av SQL-datatypsregler. Om en operator eller funktion är ogiltig för det angivna argumentet genererar Azure Databricks ett fel.

Mer information om namnmatchning finns i Kolumn, fält, parameter och variabelmatchning .

Konstant uttryck

Ett uttryck som endast baseras på literaler eller deterministiska funktioner utan argument. Azure Databricks kan köra uttrycket och använda den resulterande konstanten där normalt literaler krävs.

Booleskt uttryck

Ett uttryck med resultattypen BOOLEAN. Ett booleskt uttryck kallas ibland även för ett villkor eller ett predikat.

Skalär underfråga

Ett uttryck för formuläret ( query ). Frågan måste returnera en tabell som har en kolumn och högst en rad.

Om frågan inte returnerar någon rad blir NULLresultatet . Om frågan returnerar mer än en rad returnerar Azure Databricks ett fel. Annars är resultatet det värde som returneras av frågan.

Enkelt uttryck

Ett uttryck som inte innehåller en query, till exempel en skalär underfråga eller ett EXISTS predikat.

Exempel

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