Megosztás a következőn keresztül:


SQL-kifejezés

A következőkre vonatkozik: jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

A kifejezés olyan képlet, amely függvények vagy operátorok használatával konstansok vagy oszlopokra, mezőkre vagy változókra mutató hivatkozások alapján számítja ki az eredményt.

Syntax

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

A zárójelek expr [ expr ] tényleges zárójelek, és nem jelölnek választható szintaxist.

Paraméterek

  • betű szerinti

    Adattípusokban leírt típus literálja.

  • named_parameter_marker

    Az SQL-utasítást beküldő API által biztosított érték nevesített és beírt helyőrzője.

  • unnamed_parameter_marker

    Az SQL-utasítást beküldő API által megadott érték névtelen és beírt helyőrzője.

  • column_reference

    Hivatkozás egy táblában vagy oszlop aliasában lévő oszlopra.

  • field_reference

    Hivatkozás egy STRUCT típusú mezőre.

  • parameter_reference

    Egy SQL-felhasználó által definiált függvény paraméterére mutató hivatkozás a függvény törzséből. A hivatkozás használhatja a paraméter nem minősített nevét, vagy minősítheti a nevet a függvény nevével. Az azonosítók feloldásakor a paraméterek alkotják a legkülső hatókört.

  • CAST-kifejezés

    Egy kifejezés, amely az argumentumot egy másik típusra öntötte.

  • CASE kifejezés

    Feltételes kiértékelést lehetővé tevő kifejezés.

  • expr

    Maga a kifejezés, amely egy operator, vagy egy függvény argumentuma.

  • operator

    Egy nem naplós vagy bináris operátor.

  • expr [ expr ]

    Hivatkozás tömbelemre vagy térképkulcsra.

  • function_invocation

    Beépített vagy felhasználó által definiált függvény meghívása.

    Részletekért tekintse meg a function_invocation .

  • ( expr )

    Kényszerített elsőbbség, amely felülírja az operátorok elsőbbséget.

  • ( expr, expr [, ... ] )

    struct Két vagy több mezőből álló mezőt hoz létre. Ez a jelölés a szerkezetfüggvény szinonimája.

  • scalar_subquery:

    • ( lekérdezés )

      Egy lekérdezésen alapuló kifejezés, amely egyetlen oszlopot és legfeljebb egy sort ad vissza.

Az egyes függvények és operátorok lapjai ismertetik a paraméterek által várt adattípusokat. Az Azure Databricks implicit öntést végez a várt típusokra SQL-adattípus-szabályok használatával. Ha egy operátor vagy függvény érvénytelen a megadott argumentumhoz, az Azure Databricks hibát jelez.

A névfeloldásról további információt az Oszlop, mező, paraméter és változófeloldás című témakörben talál.

Állandó kifejezés

Olyan kifejezés, amely csak konstansokra vagy determinisztikus függvényekre épül argumentumok nélkül. Az Azure Databricks végrehajthatja a kifejezést, és használhatja az eredményül kapott állandót, ahol általában konstansokra van szükség.

Logikai kifejezés

Olyan kifejezés, amelynek eredménytípusa a következő BOOLEAN: . A logikai kifejezéseket feltételnek vagy predikátumnak is nevezik.

Skaláris alquery

Az űrlap ( query )kifejezése. A lekérdezésnek egy olyan táblát kell visszaadnia, amely egy oszlopból és legfeljebb egy sorból áll.

Ha a lekérdezés nem ad vissza sort, az eredmény .NULL Ha a lekérdezés egynél több sort ad vissza, az Azure Databricks hibát ad vissza. Ellenkező esetben az eredmény a lekérdezés által visszaadott érték.

Egyszerű kifejezés

Olyan kifejezés, amely nem tartalmaz queryskaláris alqueryt vagy predikátumot EXISTS .

Példák

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