SQL-expressie
Van toepassing op: Databricks SQL Databricks Runtime
Een expressie is een formule waarmee een resultaat wordt berekend op basis van letterlijke waarden of verwijzingen naar columns, 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 |
COLLATE 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
letterlijk
Een letterlijke tekst van een type dat wordt beschreven in gegevenstypen.
-
Een benoemde en getypte tijdelijke aanduiding voor een waarde die wordt geleverd door de API die de SQL-instructie indient.
-
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 column in een table of column alias.
field_reference
Een verwijzing naar een veld in een STRUCT-type.
-
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 qualify de naam met de functienaam. Parameters vormt het buitenste bereik bij het oplossen van identificaties.
-
Een expressie die het argument naar een ander type werpt.
-
Een expressie die voorwaardelijke evaluatie toestaat.
-
Een expressie die een expliciete sortering koppelt aan een tekenreeksexpressie.
expr
Een expressie zelf die wordt gecombineerd met een
operator
, of een argument voor een functie.-
Een unaire of binaire operator.
-
Een verwijzing naar een matrixelement of een kaartsleutel.
-
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.-
( query )
Een expressie op basis van een query die één column 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 Column, veldresolutie, parameterresolutie en variabeleresolutie voor meer informatie over naamresolutie.
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 where gebruiken waar normaal gesproken letterlijke waarden 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 table retourneren met één column en ten hoogste één rij.
Als de query geen rij retourneert, is NULL
het 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 query
predicaat, bevatEXISTS
.
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}}