Aqui está o que o
MSDN tenho a dizer sobre constantes de caracteres que são de certa forma a non-integer constant 1) Constantes não inteiras são... constantes que não são números inteiros.
Exemplo:
'string1' representa uma constante de string 0x01 representa uma constante varbinária {ts '2015-02-26 06:00:00'} representa uma constante de data e hora 1.23 representa uma constante numérica 2) Portanto, aspas simples são usadas para definir constantes de string / constantes de string de caracteres mas O SQL Server permite também usar aspas simples como delimitador de identificador de coluna:
SELECT ... expression AS 'Column1'
FROM ...
Neste contexto fica claro que
'Column1' é um identificador de coluna mas quando usado em ORDER BY :ORDER BY 'Column1' gera confusão porque o SQL Server não sabe se representa um literal de string (constante de string de caracteres) ou representa um identificador de coluna/nome de coluna. 3) SQL Server permite usar constantes inteiras em ORDER BY assim
SELECT ColA, ColB, ColC FROM ... ORDER BY 2 . Neste caso 2 é o índice da coluna ColB . Além disso, se você quiser classificar por ColB e ColC você pode usar ORDER BY 2, 3 . O uso do índice da coluna é considerado uma prática ruim. 4) Neste caso eu usaria
ORDER BY EMP_LAST_NAME + ', ' + EMP_FIRST_NAME