Non vi è alcuna differenza nella funzionalità sottostante dei due tipi di aliasing ( as
al contrario di =
). Ciò che si riduce è esattamente ciò che hai menzionato: leggibilità e manutenibilità.
Secondo me il primo ( <Expression> as <Alias>
) è molto più leggibile in quanto si spiega da sé. Quando hai, SELECT ColumnName = 1
penso che sarebbe abbastanza facile confonderlo come impostare una variabile in quelle notti lunghe e stanche. Potresti confondere che come SELECT @ColumnName = 1
e che sarebbe funzionalità completamente diversa. Pertanto, per eludere qualsiasi possibilità della query "double look", o peggio ancora ... errore nella comprensione / codifica, vado con il SELECT 1 as ColumnName
100% delle volte.
La preferenza personale, ma la coerenza (per te e nella tua squadra) è il re . Qualunque cosa tu trovi più semplice, vai e fallo sempre. Non c'è niente di più frustrante che passare avanti e indietro per la risoluzione dei problemi / revisione / manutenzione del codice.
Il terzo modo non menzionato è di usare <Expression> <Alias>
. In altre parole, il tuo secondo modo senza la as
parola chiave. Penso che questo sia tanto grave quanto il =
simbolo. Manca di leggibilità al guadagno di cosa? Non digitare tre caratteri extra ( as
e uno spazio). Non ne vale la pena.
A fini esagerati, dai un'occhiata a una query come questa:
use AdventureWorks2012;
go
select
[New Name] = Name,
NewDepId = DepartmentID,
GroupName as GName,
ModifiedDate MyModDate
from HumanResources.Department;
Non codice che vorrei rivedere.