Här är vad MSDN måste säga om teckenkonstanten som på sätt och vis är non-integer constant
1) Icke-heltalskonstanter är ... konstanter som inte är heltal.
Exempel:'string1' representerar en strängkonstant
0x01 representerar en varbinär konstant
{ts '2015-02-26 06:00:00'} representerar en datetime-konstant
1.23 representerar en numerisk konstant
2) Så enstaka citattecken används för att definiera en strängkonstanter / teckensträngskonstanter men SQL Server tillåter också att använda enstaka citattecken, använd också som kolumnidentifierare:
SELECT ... expression AS 'Column1'
FROM ...
I detta sammanhang är tydligt att 'Column1' är en kolumnidentifierare men när det används i ORDER BY :ORDER BY 'Column1' den skapar förvirring eftersom SQL Server inte vet om den representerar en strängliteral (teckensträngskonstant) eller om den representerar en kolumnidentifierare/kolumnnamn.
3) SQL Server tillåter att använda heltalskonstanter i ORDER BY alltså SELECT ColA, ColB, ColC FROM ... ORDER BY 2 . I det här fallet 2 är indexet för kolumnen ColB . Dessutom, om du vill sortera efter ColB och ColC du kan använda ORDER BY 2, 3 . Användning av kolumns index anses vara dålig praxis.
4) I det här fallet skulle jag använda
ORDER BY EMP_LAST_NAME + ', ' + EMP_FIRST_NAME