Expresiones (Transact-SQL)
Se trata de una combinación de símbolos y operadores que SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) evalúa para obtener un único valor. Las expresiones simples pueden ser una sola constante, variable, columna o función escalar. Los operadores se pueden usar para combinar dos o más expresiones simples y formar una expresión compleja.
Convenciones de sintaxis de Transact-SQL
Sintaxis
{ constant | scalar_function | [ table_name. ] column | variable
| ( expression ) | ( scalar_subquery ) | { unary_operator } expression
| expression { binary_operator } expression
| ranking_windowed_function | aggregate_windowed_function
}
Argumentos
Término | Definición |
---|---|
constant |
Es un símbolo que representa un único valor de datos específico. Para obtener más información, vea Constantes (Transact-SQL). |
scalar_function |
Es una unidad de sintaxis de Transact-SQL que proporciona un servicio específico y devuelve un único valor. scalar_function puede ser una función escalar incorporada, como las funciones SUM, GETDATE o CAST, o una función escalar definida por el usuario. |
[ table_name. ] |
Es el nombre o alias de una tabla. |
column |
Es el nombre de una columna. En una expresión sólo se admite el nombre de la columna. |
variable |
Es el nombre de una variable o un parámetro. Para obtener más información, vea DECLARE @local_variable (Transact-SQL). |
(expression ) |
Es cualquier expresión válida tal como se define en este tema. Los paréntesis son operadores de agrupación que garantizan que todos los operadores de la expresión escritos entre paréntesis se evalúen antes de que la expresión resultante se combine con otra. |
(scalar_subquery) |
Es una subconsulta que devuelve un valor. Por ejemplo:
|
{ unary_operator } |
Es un operador que sólo tiene un operando numérico:
Los operadores unarios sólo se pueden aplicar a las expresiones que se evalúen como un tipo de datos numérico. |
{ binary_operator } |
Es un operador que define la forma en que deben combinarse dos expresiones para producir un único resultado. binary_operator puede ser un operador aritmético, el operador de asignación (=), un operador bit a bit, un operador de comparación, un operador lógico, el operador de concatenación de cadena (+) o un operador unario. Para obtener más información acerca de los operadores, vea Operadores (Transact-SQL). |
ranking_windowed_function |
Es cualquier función de categoría de Transact-SQL. Para obtener más información, vea Funciones de categoría (Transact-SQL). |
aggregate_windowed_function |
Es cualquier función de agregado de Transact-SQL con la cláusula OVER. Para obtener más información, vea OVER (cláusula de Transact-SQL). |
Notas
Dos expresiones pueden combinarse mediante un operador si ambas tienen tipos de datos admitidos por el operador y se cumple al menos una de estas condiciones:
- Las expresiones tienen el mismo tipo de datos.
- El tipo de datos de menor prioridad se puede convertir implícitamente al tipo de datos de mayor prioridad.
Si las expresiones no cumplen estas condiciones, se pueden utilizar la función CAST o CONVERT para convertir explícitamente el tipo de datos de menor prioridad al tipo de datos de mayor prioridad o a un tipo de datos intermedio que se puede convertir implícitamente al tipo de datos de mayor prioridad.
Si no se admite la conversión implícita o explícita admitida, las dos expresiones no se pueden combinar.
La intercalación de cualquier expresión que se evalúa como una cadena de caracteres se establece según las reglas de prioridad de intercalación. Para obtener más información, vea Prioridad de intercalación (Transact-SQL).
En un lenguaje de programación como C o Microsoft Visual Basic, una expresión siempre se evalúa como un resultado único. Las expresiones de una lista de selección de Transact-SQL constituyen una variación de esta regla: la expresión se evalúa individualmente para cada fila del conjunto de resultados. Una única expresión puede tener un valor distinto en cada fila del conjunto de resultados, pero cada fila tiene un único valor para la expresión. Por ejemplo, en esta instrucción SELECT
, tanto la referencia a ProductID
como el término 1+2
de la lista seleccionada son expresiones:
USE AdventureWorks;
GO
SELECT ProductID, 1+2
FROM Production.Product;
GO
La expresión 1+2
se evalúa como 3
en cada fila del conjunto de resultados. Aunque la expresión ProductID
genera un valor único en cada fila del conjunto de resultados, cada fila tiene sólo un valor para ProductID
.
Resultados de la expresión
Para una expresión sencilla creada con una constante, variable, función escalar o nombre de columna, el tipo de datos, intercalación, precisión, escala y valor de la expresión es el tipo de datos, intercalación, precisión, escala y valor del elemento de referencia.
Si se combinan dos expresiones mediante operadores de comparación o lógicos, el tipo de datos resultante es booleano y el valor es uno de los siguientes: TRUE, FALSE o UNKNOWN. Para obtener más información acerca de los tipos de datos booleanos, vea Operadores (Transact-SQL).
Cuando dos expresiones se combinan mediante operadores aritméticos, bit a bit o de cadena, el operador determina el tipo de datos resultante.
Las expresiones complejas formadas por varios símbolos y operadores se evalúan como un resultado formado por un solo valor. El tipo de datos, intercalación, precisión y valor de la expresión resultante se determina al combinar las expresiones componentes de dos en dos, hasta que se alcanza un resultado final. La prioridad de los operadores de la expresión define la secuencia en que se combinan las expresiones.
Vea también
Referencia
CASE (Transact-SQL)
CAST y CONVERT (Transact-SQL)
COALESCE (Transact-SQL)
Prioridad de tipo de datos (Transact-SQL)
Tipos de datos (Transact-SQL)
Funciones (Transact-SQL)
LIKE (Transact-SQL)
NULLIF (Transact-SQL)
SELECT (Transact-SQL)
WHERE (Transact-SQL)
Otros recursos
Conversiones de tipos de datos (motor de base de datos)