2016/06/29

ALIAS: RENOMBRANDO TABLAS, COLUMNAS

PROBLEMA: Como parte de las buenas prácticas que se recomiendan para escribir consultas, es necesario el uso de ALIAS para los objetos, muchos de nosotros sabemos como renombrar nombres de columnas y tablas temporalmente en SQL SERVER, sabías que hay más de una manera de lograr esto?

SOLUCION: En el siguiente artículo veremos las formas más conocidas para renombrar objetos temporalmente en una consulta, y les dejaré a su consideración la mejor forma para escribir sus consultas:

1

La más conocida de todas es usando la palabra clave AS, veamos algunos ejemplos:
SELECT *
FROM HumanResources.Employee AS e
    INNER JOIN Person.Person AS p
    ON e.BusinessEntityID = p.BusinessEntityID
ORDER BY p.LastName

SELECT 
 e.BirthDate AS BirthDate
 , e.BusinessEntityID AS BusinessEntityIDemployee
 , e.CurrentFlag AS CurrentFlag
 , p.BusinessEntityID AS BusinessEntityIDperson
FROM HumanResources.Employee AS e
    INNER JOIN Person.Person AS p
    ON e.BusinessEntityID = p.BusinessEntityID
ORDER BY p.LastName

2

Escribiendo el nombre de la columna o tabla inmediatamente después del nombre al que hacemos referencia:
SELECT *
FROM HumanResources.Employee employee
    INNER JOIN Person.Person person
    ON employee.BusinessEntityID = person.BusinessEntityID
ORDER BY person.LastName

SELECT 
 employee.BirthDate BirthDate
 , employee.BusinessEntityID BusinessEntityIDemployee
 , employee.CurrentFlag CurrentFlag
 , person.BusinessEntityID BusinessEntityIDperson
FROM HumanResources.Employee employee
    INNER JOIN Person.Person person
    ON employee.BusinessEntityID = person.BusinessEntityID
ORDER BY person.LastName

3

Utilizando el símbolo = , esto solo para el caso de los nombres de las columnas, no funciona para los nombres de las tablas.
SELECT 
 BirthDate = e.BirthDate 
 , BusinessEntityIDemployee = e.BusinessEntityID 
 , CurrentFlag = e.CurrentFlag 
 , BusinessEntityIDperson = p.BusinessEntityID 
FROM HumanResources.Employee AS e
    INNER JOIN Person.Person AS p 
    ON e.BusinessEntityID = p.BusinessEntityID
ORDER BY p.LastName

Para la opción 2 es posible que exista un poco de confusión al momento de leer la consulta en caso de que no especifiquemos un alias para el nombre de la tabla, ejemplo:
SELECT 
BirthDate MaritalStatus , 
MaritalStatus BirthDate ,
*  
FROM HumanResources.Employee


Como podemos observar, ya existen las columnas MaritalStatus y BirthDate, y aun así SQL SERVER nos permite renombrar tablas con nombres de columnas ya existentes en la tabla original, una vez ejecutada la consulta podemos deducir que la columna es la de la izquierda y el ALIAS el de la derecha.

Sucede de la misma manera usando el símbolo =, ya una vez ejecutada la consulta podemos llegar a la conclusión que la tabla es la de la derecha que es asignada a un ALIAS de la izquierda del símbolo =
SELECT 
BirthDate = MaritalStatus , 
MaritalStatus = BirthDate ,
*  
FROM HumanResources.Employee

Usando la palabra reservada ya sabemos y tenemos la certeza que la columna es la de la izquierda a AS y el nuevo nombre es la derecha.

Espero que con estos pequeños consejos puedan decidir cual es la mejor opción para ustedes y tomarlas en cuenta al momento de realizar sus consultas.

SALUDOS!
COMPARTE ESTA INFORMACION SI TE PARECIO INTERESANTE

0 comentarios:

Publicar un comentario