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