Eu sempre vi e escrevi meus apelidos de coluna como
SELECT 1 as ColumnName
mas hoje me deparei com uma consulta que usava
SELECT ColumnName = 1
Existe alguma diferença em como essas duas consultas são executadas? Ou existe um padrão entre os DBAs sobre qual usar?
Pessoalmente, acho que a segunda seria mais fácil de ler/manter para definições de coluna mais longas (bom exemplo aqui deste artigo ), no entanto, nunca vi a segunda sintaxe usada antes de hoje, então estou me perguntando se há algum motivo para não estar usando isso.
Não há diferença na funcionalidade subjacente dos dois tipos de aliasing (
as
oposto a=
). O que se resume é exatamente o que você mencionou: legibilidade e manutenção.Na minha opinião, o primeiro (
<Expression> as <Alias>
) é muito mais legível, pois é autoexplicativo. Quando você tiverSELECT ColumnName = 1
, acho que seria muito fácil confundir isso com definir uma variável naquelas longas noites cansadas. Você pode confundir issoSELECT @ColumnName = 1
e isso seria uma funcionalidade completamente diferente. Portanto, para contornar qualquer possibilidade da consulta "double look", ou pior ainda...erro de entendimento/codificação, vou comSELECT 1 as ColumnName
100% das vezes.Preferência pessoal, mas consistência (para você e dentro de sua equipe) é o rei . O que quer que você ache mais fácil, vá em frente e faça isso o tempo todo. Não há nada mais frustrante do que alternar para a solução de problemas/revisão/manutenção de código de alguém.
A terceira maneira não mencionada é usar
<Expression> <Alias>
. Em outras palavras, sua segunda via sem a palavra-as
chave. Eu acho que isso é tão ruim quanto o=
símbolo. Falta legibilidade com o ganho de quê? Não digitar três caracteres extras (as
e um espaço). Não vale a pena.Para fins de exagero, dê uma olhada em uma consulta como esta:
Não é um código que eu gostaria de revisar.
Pessoalmente, acho
alias = expression
mais fácil de ler e compreender. O motivo é que, quando estou solucionando problemas de umaSELECT
instrução que possui expressões longas, provavelmente desejo localizar a expressão por meio do nome da coluna, e não o contrário. Rápido, encontre a expressão que o aplicativo vê comoalias2
:Essa é a minha preferência. O seu pode ser diferente. Não há vantagem real em usar um ou outro, exceto por razões subjetivas / de gosto. O importante é que você escolha uma maneira de fazer isso e faça-o de forma consistente (e, a menos que jogue uma moeda, seja capaz de defender sua escolha quando se deparar com alguém que gosta da outra maneira). Mas se você escrever código para um DBA tão exigente quanto eu, esteja preparado para que ele seja reescrito . :-)
Uma coisa que me deixa ainda mais forte é o uso de aspas simples em nomes alternativos, por exemplo
Um formulário está obsoleto, mas ambos são muito difíceis de ler - e muitos novatos confundem o alias com uma string literal, já que é assim que parece. Pelas mesmas razões, eu absolutamente detesto o uso de aspas duplas (
"alias"
). Se você precisar escapar do seu alias porque é uma palavra reservada ou foi mal escolhida ou formatada, use[square brackets]
.