Ето какво MSDN трябва да кажа за символна константа, която в известен смисъл е non-integer constant
1) Нецелите константи са ... константи, които не са цяло число.
Пример:'string1' представлява низова константа
0x01 представлява varbinary константа
{ts '2015-02-26 06:00:00'} представлява константа за дата и час
1.23 представлява числова константа
2) Така че единичните кавички се използват за дефиниране на низови константи / символни низови константи но SQL Server позволява също да се използват единични кавички като разделител на идентификатор на колона:
SELECT ... expression AS 'Column1'
FROM ...
В този контекст е ясно, че 'Column1' е идентификатор на колонано когато се използва в ORDER BY :ORDER BY 'Column1' генерира объркване, защото SQL Server не знае дали представлява низов литерал (константа на символен низ), или представлява идентификатор на колона/име на колона.
3) SQL Server позволява използването на целочислени константи в ORDER BY по този начин SELECT ColA, ColB, ColC FROM ... ORDER BY 2 . В този случай 2 е индексът на колона ColB . Освен това, ако искате да сортирате по ColB и ColC можете да използвате ORDER BY 2, 3 . Използването на индекс на колона се счита за лоша практика.
4) В този случай бих използвал
ORDER BY EMP_LAST_NAME + ', ' + EMP_FIRST_NAME