Compartir vía


Expresión SQL

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Una expresión es una fórmula que calcula un resultado en función de literales o referencias de columna, campos o variables mediante funciones u operadores.

Sintaxis

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

Los corchetes en expr [ expr ] son corchetes reales y no indican sintaxis opcional.

Parámetros

  • literal

    Un literal de un tipo descrito en Tipos de datos.

  • named_parameter_marker

    Marcador de posición con nombre y tipo para un valor proporcionado por la API que envía la instrucción SQL.

  • unnamed_parameter_marker

    Marcador de posición sin nombre y tipo para un valor proporcionado por la API que envía la instrucción SQL.

  • column_reference

    Referencia a una columna en un alias de tabla o columna.

  • field_reference

    Referencia a un campo de un tipo STRUCT.

  • parameter_reference

    Referencia a un parámetro de un SQL función definida por el usuario desde con el cuerpo de la función. La referencia puede usar el nombre no completo del parámetro o calificar el nombre con el nombre de la función. Los parámetros constituyen el ámbito más externo al resolver identificadores.

  • Expresión CAST

    Expresión que convierte el argumento en un tipo diferente.

  • Expresión CASE

    Expresión que permite la evaluación condicional.

  • expr

    Expresión propiamente dicha que se combina con operator o que es un argumento para una función.

  • operador

    Operador unario o binario.

  • expr [ expr ]

    Referencia a un elemento de matriz o una clave de mapa.

  • function_invocation

    Invocación de una función incorporada o definida por el usuario.

    Consulte function_invocation para más detalles.

  • ( expr )

    Precedencia aplicada que invalida la precedencia del operador.

  • ( expr, expr [, … ] )

    Crea un struct de dos campos o más. Esta notación es sinónimo de la función struct.

  • scalar_subquery:

    • ( query )

      Expresión basada en una consulta que debe devolver una sola columna y, como máximo, una fila.

Las páginas de cada función y operador describen los tipos de datos que esperan sus parámetros. Azure Databricks utiliza reglas de tipo de datos SQL para realizar la conversión implícita a tipos esperados. Si un operador o una función no son válidos para el argumento proporcionado, Azure Databricks genera un error.

Consulte Resolución de columnas, campos, parámetros y variables para obtener más información sobre la resolución de nombres.

Expresión constante

Expresión que solo se basa en literales o funciones deterministas sin argumentos. Azure Databricks puede ejecutar la expresión y usar la constante resultante donde normalmente se requieren literales.

expresión booleana

Expresión con un tipo de resultado de BOOLEAN. Las expresiones booleanas también se conocen a veces como condiciones o predicados.

Subconsulta escalar

Expresión con el formato ( query ). La consulta debe devolver una tabla que tenga una columna y, como máximo, una fila.

Si la consulta no devuelve ninguna fila, el resultado es NULL. Si la consulta devuelve más de una fila, Azure Databricks devuelve un error. De lo contrario, el resultado es el valor que devuelve la consulta.

Expresión simple

Expresión que no contiene query, como una subconsulta escalar o un predicado EXISTS.

Ejemplos

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