Sdílet prostřednictvím


Výraz SQL

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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 |
  COLLATE 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ší oblast platnosti 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í.

  • COLLATE výrazu

    Výraz, který připojí explicitní kolaci k řetězcovýmu výrazu.

  • 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 funkce a operátory popisují datové typy, které očekávají jejich parametry. 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 vyhodnocení názvů pro sloupec, pole, parametr a proměnnou najdete v části ,.

Konstantní výraz

Výraz, který je založen pouze na literálech nebo deterministických funkcích bez argumentů. Azure Databricks může provést výraz a použít výslednou konstantu na místě, 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}}