Il n'y a aucune différence dans la fonctionnalité sous-jacente des deux types d'alias (par as
opposition à =
). Cela se résume exactement à ce que vous avez mentionné: lisibilité et maintenabilité.
À mon avis, l'ancien ( <Expression> as <Alias>
) est beaucoup plus lisible car il est explicite. Quand vous l'avez, SELECT ColumnName = 1
je pense qu'il serait assez facile de confondre cela avec le réglage d'une variable lors de ces longues nuits fatiguées. Vous pourriez confondre cela avec SELECT @ColumnName = 1
et ce serait une fonctionnalité complètement différente. Par conséquent, pour contourner toute possibilité de requête "double look", ou pire encore ... erreur de compréhension / codage, je pars avec SELECT 1 as ColumnName
100% du temps.
Préférence personnelle, mais la cohérence (pour vous et au sein de votre équipe) est primordiale . Tout ce que vous trouvez le plus facile, allez-y et faites-le tout le temps. Il n'y a rien de plus frustrant que de faire des allers-retours pour le dépannage / la révision / la maintenance du code.
La troisième façon non mentionnée est d'utiliser <Expression> <Alias>
. En d'autres termes, votre deuxième moyen sans le as
mot clé. Je pense que c'est aussi mauvais que le =
symbole. Il manque de lisibilité au profit de quoi? Ne pas taper trois caractères supplémentaires ( as
et un espace). Pas la peine.
À des fins d'exagération, jetez un œil à une requête comme celle-ci:
use AdventureWorks2012;
go
select
[New Name] = Name,
NewDepId = DepartmentID,
GroupName as GName,
ModifiedDate MyModDate
from HumanResources.Department;
Pas du code que je voudrais revoir.