Inicio > Transact-SQL > Referencia a una columna computada en la cláusula WHERE en SQL

Referencia a una columna computada en la cláusula WHERE en SQL


Se requiere filtrar algunas filas mediante la claúsula WHERE con respecto a una columna computada la cual tiene un alias asignado.

Se podria hacer de 2 maneras :

SELECT Nombre, Apellido, (Sueldo + COALESCE(Incremento, 0)) AS Total
FROM Empleado
WHERE (Sueldo + COALESCE(Incremento, 0)) > 500;

ó ;

SELECT *
FROM (
SELECT Nombre, Apellido, (Sueldo + COALESCE(Incremento, 0)) AS Total
FROM Empleado
) Prueba
WHERE Total > 500;

Al colocar la consulta que genera el alias, se tiene la posibilidad de hacer referencia a las columnas computadas.

Es así porque la cláusula WHERE se evalúa antes que el SELECT, por lo que las columnas computadas no existen todavía cuando se evalúa la cláusula WHERE.

Las columnas computadas no se aplican hasta que se haya finalizado el procesamiento de la cláusula WHERE.

La claúsula FROM se evalúa antes que WHERE. Al situar la consulta original en una cláusula FROM, los resultados de esa consulta se generan antes que la claúsula WHERE, la cual puede utilizar las columnas computadas y sus alias.

Categorías:Transact-SQL
  1. 29 agosto 2011 a las 2:57 pm

    Agradecido!

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: