Wyrażenie SQL

Dotyczy:check marked yes Databricks SQL check marked yes Databricks Runtime

Wyrażenie to formuła, która oblicza wynik na podstawie literałów lub odwołań do kolumn, pól lub zmiennych przy użyciu funkcji lub operatorów.

Składnia

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

Nawiasy w tabeli expr [ expr ] są rzeczywistymi nawiasami kwadratowymi i nie wskazują opcjonalnej składni.

Parametry

  • literal

    Literał typu opisany w artykule Typy danych.

  • named_parameter_marker

    Nazwany i wpisany symbol zastępczy dla wartości dostarczonej przez interfejs API przesyłając instrukcję SQL.

  • unnamed_parameter_marker

    Symbol zastępczy nienazwany i wpisany dla wartości dostarczonej przez interfejs API przesyłając instrukcję SQL.

  • column_reference

    Odwołanie do kolumny w aliasie tabeli lub kolumny.

  • field_reference

    Odwołanie do pola w typie struktury.

  • parameter_reference

    Odwołanie do parametru funkcji zdefiniowanej przez użytkownika SQL z treścią funkcji. Odwołanie może używać niekwalifikowanej nazwy parametru lub kwalifikować nazwę z nazwą funkcji. Parametry stanowią najbardziej zewnętrzny zakres podczas rozpoznawania identyfikatorów.

  • Wyrażenie CAST

    Wyrażenie rzutuje argument na inny typ.

  • Wyrażenie CASE

    Wyrażenie umożliwiające ocenę warunkową.

  • Expr

    Wyrażenie, które jest łączone z elementem operator, lub jest argumentem funkcji.

  • operator

    Jednoargumentowy lub binarny operator.

  • wyrażenie [ wyrażenie ]

    Odwołanie do elementu tablicy lub klucza mapy.

  • function_invocation

    Wywołanie wbudowanej lub zdefiniowanej przez użytkownika funkcji.

    Aby uzyskać szczegółowe informacje, zobacz function_invocation .

  • ( wyrażenie )

    Wymuszony pierwszeństwo, które zastępuje pierwszeństwo operatora.

  • ( wyrażenie, wyrażenie [, ... ] )

    struct Tworzy co najmniej dwa pola. Ta notacja jest synonimem funkcji struktury.

  • scalar_subquery:

    • ( zapytanie )

      Wyrażenie oparte na zapytaniu, które musi zwracać jedną kolumnę i co najwyżej jeden wiersz.

Strony dla każdej funkcji i operatora opisują typy danych, których oczekuje ich parametry. Usługa Azure Databricks wykonuje niejawne rzutowanie do oczekiwanych typów przy użyciu reguł typów danych SQL. Jeśli operator lub funkcja jest nieprawidłowa dla podanego argumentu, usługa Azure Databricks zgłasza błąd.

Aby uzyskać więcej informacji na temat rozpoznawania nazw, zobacz Kolumna, pole, parametr i rozdzielczość zmiennych.

Wyrażenie stałe

Wyrażenie oparte tylko na literałach lub funkcjach deterministycznych bez argumentów. Usługa Azure Databricks może wykonać wyrażenie i użyć stałej wynikowej, gdzie zwykle są wymagane literały.

Wyrażenie warunkowe

Wyrażenie z typem BOOLEANwyniku . Wyrażenie logiczne jest również czasami określane jako warunek lub predykat.

Podzapytywanie skalarne

Wyrażenie formularza ( query ). Zapytanie musi zwrócić tabelę zawierającą jedną kolumnę i co najwyżej jeden wiersz.

Jeśli zapytanie nie zwraca żadnego wiersza, wynikiem jest NULL. Jeśli zapytanie zwraca więcej niż jeden wiersz, usługa Azure Databricks zwraca błąd. W przeciwnym razie wynik jest wartością zwracaną przez zapytanie.

Wyrażenie proste

Wyrażenie, które nie zawiera queryelementu , takiego jak podzapytywanie skalarne lub EXISTS predykat.

Przykłady

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