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