Wyrażenie SQL

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak 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 |
  COLLATE expression |
  expr operator expr |
  operator expr |
  expr [ expr ] |
  function_invocation |
  ( expr ) |
  ( expr, expr [, ... ] ) |
  scalar_subquery }

scalar_subquery
  ( query )

Nawiasy w expr [ expr ] są rzeczywistymi nawiasami i nie wskazują na opcjonalną składnię.

Parametry

  • literalny

    Literał typu opisanego w Typy Danych.

  • znacznik_nazwanego_parametru

    Nazwany symbol zastępczy określonego typu dla wartości dostarczonej przez interfejs API podczas przesyłania instrukcji SQL.

  • niezdefiniowany_znacznik_parametru

    Nieokreślony symbol zastępczy z określonym typem dla wartości dostarczonej przez interfejs API przesyłający instrukcję SQL.

  • odwołanie_do_kolumny

    Odwołanie do kolumny w aliasie tabeli lub kolumny.

  • field_reference

    Odwołanie do pola w typie struktury.

  • odniesienie_do_parametru

    Odwołanie do parametru funkcji zdefiniowanej przez użytkownika SQL wewnątrz ciała funkcji. Odwołanie może używać niekwalifikowanej nazwy parametru lub oznaczać nazwę nazwą funkcji. Parametry stanowią najbardziej zewnętrzny zakres podczas rozpoznawania identyfikatorów.

  • Wyrażenie CAST

    Wyrażenie konwertujące argument na inny typ.

  • Wyrażenie CASE

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

  • wyrażenie COLLATE

    Wyrażenie dołączające eksplitytne sortowanie do wyrażenia ciągu.

  • expr

    Samo wyrażenie, które jest łączone z elementem operator, lub które stanowi argument 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 )

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

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

    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 rozpoznawanie kolumn, pól, parametrów i 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 boolowskie

Wyrażenie o typie wyniku BOOLEAN. Wyrażenie logiczne jest również czasami określane jako warunek lub predykat.

Podzapytywanie skalarne

Wyrażenie w postaci ( 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 query, takie jak podzapytanie 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}}