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