Ето какво 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