Her er hvad MSDN har at sige om tegnkonstanten, der på en måde er non-integer constant
1) Ikke-heltalskonstanter er ... konstanter, der ikke er heltal.
Eksempel:'string1' repræsenterer en strengkonstant
0x01 repræsenterer en varbinær konstant
{ts '2015-02-26 06:00:00'} repræsenterer en dato-tidskonstant
1.23 repræsenterer en numerisk konstant
2) Så enkelte anførselstegn bruges til at definere en strengkonstanter / tegnstrengkonstanter men SQL Server tillader også at bruge enkelte anførselstegn, brug også som kolonne-id-afgrænser:
SELECT ... expression AS 'Column1'
FROM ...
I denne sammenhæng er det klart, at 'Column1' er et kolonne-id men når det bruges i ORDER BY :ORDER BY 'Column1' det skaber forvirring, fordi SQL Server ikke ved, om det repræsenterer en streng-literal (tegnstrengkonstant), eller den repræsenterer en kolonne-id/kolonnenavn.
3) SQL Server tillader at bruge heltalskonstanter i ORDER BY således SELECT ColA, ColB, ColC FROM ... ORDER BY 2 . I dette tilfælde 2 er indekset for kolonne ColB . Også, hvis du vil sortere efter ColB og ColC du kan bruge ORDER BY 2, 3 . Brug af kolonnens indeks anses for at være dårlig praksis.
4) I dette tilfælde ville jeg bruge
ORDER BY EMP_LAST_NAME + ', ' + EMP_FIRST_NAME