Ich habe meine Spaltenaliase immer als gesehen und geschrieben
SELECT 1 as ColumnName
aber heute stieß ich auf eine Abfrage, die verwendet wurde
SELECT ColumnName = 1
Gibt es einen Unterschied, wie diese beiden Abfragen ausgeführt werden? Oder gibt es einen Standard unter den DBAs, den man verwenden soll?
Persönlich denke ich, dass die zweite für längere Spaltendefinitionen leichter zu lesen / zu pflegen wäre (gutes Beispiel hier aus diesem Artikel ), aber ich habe die bisher verwendete zweite Syntax noch nie gesehen und frage mich, ob es einen Grund gibt, warum ich nicht sollte es benutzen.
sql-server
t-sql
best-practices
Rachel
quelle
quelle
Antworten:
Es gibt keinen Unterschied in der zugrunde liegenden Funktionalität der beiden Arten von Aliasing (im
as
Gegensatz zu=
). Worauf es ankommt, ist genau das, was Sie erwähnt haben: Lesbarkeit und Wartbarkeit.Meiner Meinung nach ist Ersteres (
<Expression> as <Alias>
) viel lesbarer, da es selbsterklärend ist. Wenn Sie haben,SELECT ColumnName = 1
denke ich, wäre es ziemlich einfach, das als eine Variable in diesen langen, müden Nächten zu verwechseln. Sie könnten das als verwechselnSELECT @ColumnName = 1
und das wäre eine völlig andere Funktionalität. Um die Möglichkeit der Abfrage "Double Look" oder noch schlimmer ... Fehler beim Verstehen / Codieren zu umgehen, gehe ichSELECT 1 as ColumnName
100% der Zeit.Persönliche Vorlieben, aber Konsequenz (für Sie und Ihr Team) ist König . Was immer Sie am einfachsten finden, machen Sie es die ganze Zeit mit. Es gibt nichts Frustrierenderes als das Hin- und Herwechseln bei der Fehlerbehebung, Überprüfung und Pflege von Code.
Der dritte nicht erwähnte Weg ist zu verwenden
<Expression> <Alias>
. Mit anderen Worten, Ihr zweiter Weg ohne dasas
Schlüsselwort. Ich denke das ist genauso schlimm wie das=
Symbol. Es fehlt die Lesbarkeit zu gewinnen, was? Keine Eingabe von drei zusätzlichen Zeichen (as
und einem Leerzeichen). Ist es nicht wert.Betrachten Sie zu Übertreibungszwecken eine Abfrage wie die folgende:
Kein Code, den ich überprüfen möchte.
quelle
Persönlich finde ich
alias = expression
leichter zu lesen und zu verstehen. Der Grund dafür ist, dass ich bei der Fehlerbehebung bei einerSELECT
Anweisung mit langen Ausdrücken den Ausdruck wahrscheinlich über den Spaltennamen suchen möchte, nicht umgekehrt. Finden Sie schnell den Ausdruck, den die Anwendung sieht alsalias2
:Das ist meine Präferenz. Ihre kann anders sein. Es gibt keinen wirklichen Vorteil, das eine oder das andere zu verwenden, außer aus subjektiven / geschmacklichen Gründen. Wichtig ist, dass Sie einen Weg wählen, um dies konsequent zu tun (und wenn Sie keine Münze werfen, können Sie Ihre Wahl verteidigen, wenn Sie auf jemanden stoßen, der den anderen Weg mag). Wenn Sie jedoch Code für einen DBA schreiben, der so pingelig ist wie ich, müssen Sie darauf vorbereitet sein, dass er umgeschrieben wird. :-)
Ich habe darüber gebloggt .
Eine Sache, bei der ich mich noch stärker fühle, ist die Verwendung von einfachen Anführungszeichen um Aliasnamen, z
Ein Formular ist veraltet, aber beide sind sehr schwer zu lesen - und viele Neulinge verwechseln den Alias als String-Literal, da es so aussieht. Aus den gleichen Gründen verabscheue ich die Verwendung von doppelten Anführungszeichen (
"alias"
). Wenn Sie sich von Ihrem Alias entfernen müssen, weil es sich um ein reserviertes Wort handelt oder auf andere Weise schlecht ausgewählt oder formatiert ist, verwenden Sie[square brackets]
.quelle
as <Alias>
in die letzte Zeile der Spaltendefinition . Aber definitiv einverstanden, es ist so persönlich, wie Sie Ihren Kaffee mögen.AS Alias
,AS
ist dies nicht sehr nützlich, wenn ich vertikal nach einem bestimmten Tabellennamen scanne. Ich wette, wir sind uns nicht einig, wo wir auch die Kommas setzen sollen. :-)AS
weitermachen, da wir dies im Moment verwenden (normalerweise füge ich eine neueAS ColumnName
Zeile hinzu, damit sie grob ausgerichtet sind), aber ich stimme zu, dass dies=
in längeren Spaltendefinitionen viel besser lesbar ist.