Výraz SQL

Platí pro:check marked yes Databricks SQL check marked yes Databricks Runtime

Výraz je vzorec, který vypočítá výsledek na základě literálů nebo odkazů na sloupce, pole nebo proměnné pomocí funkcí nebo operátorů.

Syntaxe

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

Hranaté závorky jsou skutečné hranaté závorky expr [ expr ] a neudávají volitelnou syntaxi.

Parametry

  • literal

    Literál typu popsaného v datovýchtypech

  • named_parameter_marker

    Pojmenovaný a zadaný zástupný symbol pro hodnotu poskytovanou rozhraním API, která odesílá příkaz SQL.

  • unnamed_parameter_marker

    Nepojmenovaný a zadaný zástupný symbol pro hodnotu poskytovanou rozhraním API, která odesílá příkaz SQL.

  • column_reference

    Odkaz na sloupec v aliasu tabulky nebo sloupce

  • field_reference

    Odkaz na pole v typu STRUCT.

  • parameter_reference

    Odkaz na parametr uživatelem definované funkce SQL z těla funkce. Odkaz může použít nekvalifikovaný název parametru nebo kvalifikovat název s názvem funkce. Parametry představují vnější obor při překladu identifikátorů.

  • VÝRAZ CAST

    Výraz přetypuje argument na jiný typ.

  • Výraz CASE

    Výraz umožňující podmíněné vyhodnocení.

  • Výraz

    Samotný výraz, který je zkombinovaný s funkcí operatornebo který je argumentem funkce.

  • operator

    Unární nebo binární operátor.

  • výraz [ výraz ]

    Odkaz na prvek pole nebo klíč mapy.

  • function_invocation

    Vyvolání předdefinované nebo uživatelem definované funkce

    Podrobnosti najdete v function_invocation .

  • ( výraz )

    Vynucená priorita, která přepíše prioritu operátoru.

  • ( výraz, výraz [, ... ] )

    Vytvoří dvě struct nebo více polí. Tato notace je synonymem pro funkci struktury.

  • scalar_subquery:

    • ( dotaz )

      Výraz založený na dotazu, který musí vrátit jeden sloupec a maximálně jeden řádek.

Stránky pro každou funkci a operátor popisují datové typy, které parametry očekávají. Azure Databricks provádí implicitní přetypování na očekávané typy pomocí pravidel datového typu SQL. Pokud je operátor nebo funkce pro zadaný argument neplatný, Azure Databricks vyvolá chybu.

Další informace o překladu názvů najdete v tématu Sloupec, pole, parametr a rozlišení proměnných.

Konstantní výraz

Výraz, který je založen pouze na literálech nebo deterministických funkcích bez argumentů. Azure Databricks může výraz spustit a použít výslednou konstantu, kde se obvykle vyžadují literály.

Logický výraz

Výraz s typem výsledku BOOLEAN. Logický výraz se také někdy označuje jako podmínka nebo predikát.

Skalární poddotaz

Výraz formuláře ( query ). Dotaz musí vrátit tabulku, která má jeden sloupec a maximálně jeden řádek.

Pokud dotaz nevrátí žádný řádek, výsledek je NULL. Pokud dotaz vrátí více než jeden řádek, Azure Databricks vrátí chybu. V opačném případě je výsledkem hodnota vrácená dotazem.

Jednoduchý výraz

Výraz, který neobsahuje queryskalární poddotaz nebo EXISTS predikát.

Příklady

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