SQL-uttryck
Gäller för: Databricks SQL
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 |
COLLATE 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
ordagrann
En literal av en typ som beskrivs i Datatyper.
-
En namngiven och typad platshållare för ett värde som tillhandahålls av API:et som skickar SQL-instruktionen.
-
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.
-
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.
-
Ett uttryck som gjuter argumentet till en annan typ.
-
Ett uttryck som tillåter villkorsstyrd utvärdering.
-
Ett uttryck som kopplar en explicit sortering till ett stränguttryck.
expr
Ett uttryck i sig som kombineras med en
operator
, eller som är ett argument till en funktion.-
En unary- eller binär operator.
-
En referens till ett matriselement eller en kartnyckel.
-
Ett anrop av en inbyggd eller användardefinierad funktion.
( 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.-
( 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 NULL
resultatet .
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}}