Hier ist, was die MSDN
Ich muss etwas über Zeichenkonstanten sagen, die gewissermaßen die non-integer constant
sind
1) Nicht ganzzahlige Konstanten sind ... Konstanten, die nicht ganzzahlig sind.
Beispiel:'string1'
repräsentiert eine String-Konstante
0x01
stellt eine varbinäre Konstante dar
{ts '2015-02-26 06:00:00'}
stellt eine datetime-Konstante dar
1.23
repräsentiert eine numerische Konstante
2) Einfache Anführungszeichen werden also verwendet, um eine Zeichenkettenkonstante / Zeichenkettenkonstante aber zu definieren SQL Server erlaubt auch die Verwendung von einfachen Anführungszeichen, die auch als Trennzeichen für die Spaltenkennung verwendet werden:
SELECT ... expression AS 'Column1'
FROM ...
In diesem Zusammenhang ist klar, dass 'Column1'
ist eine Spaltenkennung aber bei Verwendung in ORDER BY:ORDER BY 'Column1'
es erzeugt Verwirrung, weil SQL Server nicht weiß, ob es ein String-Literal (Zeichenkettenkonstante) oder einen Spaltenbezeichner/Spaltennamen darstellt.
3) SQL Server erlaubt die Verwendung ganzzahliger Konstanten in ORDER BY, also SELECT ColA, ColB, ColC FROM ... ORDER BY 2
. In diesem Fall 2
ist der Index der Spalte ColB
. Auch wenn Sie nach ColB
sortieren möchten und ColC
Sie könnten ORDER BY 2, 3
verwenden . Die Verwendung des Spaltenindex gilt als schlechte Praxis.
4) In diesem Fall würde ich
verwendenORDER BY EMP_LAST_NAME + ', ' + EMP_FIRST_NAME