Dit is wat de MSDN te zeggen hebben over tekenconstante die in zekere zin de non-integer constant . zijn
1) Niet-gehele constanten zijn ... constanten die geen geheel getal zijn.
Voorbeeld:'string1' vertegenwoordigt een tekenreeksconstante
0x01 vertegenwoordigt een varbinaire constante
{ts '2015-02-26 06:00:00'} vertegenwoordigt een datetime-constante
1.23 vertegenwoordigt een numerieke constanten
2) Dus enkele aanhalingstekens worden gebruikt om een tekenreeksconstanten / tekenreeksconstanten te definiëren maar SQL Server maakt het ook mogelijk om enkele aanhalingstekens te gebruiken, ook als scheidingsteken voor kolom-ID's:
SELECT ... expression AS 'Column1'
FROM ...
In deze context is duidelijk dat 'Column1' is een kolom-ID maar bij gebruik in ORDER BY :ORDER BY 'Column1' het genereert verwarring omdat SQL Server niet weet of het een letterlijke tekenreeks (tekenreeksconstante) of een kolom-ID / kolomnaam vertegenwoordigt.
3) SQL Server maakt het mogelijk om integer-constanten te gebruiken in ORDER BY, dus SELECT ColA, ColB, ColC FROM ... ORDER BY 2 . In dit geval 2 is de index van kolom ColB . Ook als u wilt sorteren op ColB en ColC je zou kunnen gebruiken ORDER BY 2, 3 . Het gebruik van de index van de kolom wordt als een slechte gewoonte beschouwd.
4) In dit geval zou ik
. gebruikenORDER BY EMP_LAST_NAME + ', ' + EMP_FIRST_NAME