Databricks SQL uttryck

Ett uttryck är en formel som beräknar ett resultat baserat på literaler, eller kolumn-, fält- eller variabelreferenser med hjälp av funktioner eller operatorer.

Syntax

{ literal |
  column_reference |
  field_reference |
  CAST expression |
  CASE expression |
  expr operator expr |
  operator expr |
  expr [ expr ] |
  function_invocation |
  ( expr ) |
  scalar_subquery }

scalar_subquery
  ( query )

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

Parametrar

  • literal:En literal av en typ som beskrivs i Databricks SQL datatyper.
  • column_reference:En referens till en kolumn i en tabell eller ett kolumnalias.
  • field_reference:En referens till ett fält i en STRUCT-typ (Databricks SQL).
  • CAST-uttryck:Ett uttryck som kastar argumentet till en annan typ.
  • CASE-uttryck:Ett uttryck som tillåter villkorsstyrd utvärdering.
  • expr:Ett uttryck i sig som kombineras med ett , eller som är ett argument till en funktion.
  • operator:En en enär eller binär operator.
  • [ expr ]: En referens till ett matriselement eller en kartnyckel.
  • function_invocation:Ett uttryck som anropar en inbyggd eller användardefinierad funktion
  • ( expr ): Framtvingad prioritet som åsidosätter operatorn prioritet.
  • scalar_subquery:
    • ( fråga ): Ett uttryck baserat på en fråga som måste returnera en enda kolumn och högst en rad.

Kommentarer

Funktioner och operatorer förväntar sig specifika datatyper som de använder och som beskrivs med respektive funktion eller operator. Databricks SQL implicit typkonformning till förväntade typer med hjälp av Databricks SQL av typen prioritet. Om en operator eller funktion är ogiltig för det angivna argumentet, SQL Databricks ett fel.

Konstant uttryck

Ett uttryck som endast baseras på literaler eller deterministiska funktioner utan argument. Databricks SQL kan köra uttrycket och använda resulterande konstant 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ära underfråga

Ett uttryck av 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 resultatet NULL . Om frågan returnerar fler än en rad returnerar Databricks SQL returnerar 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ära 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