В SQL Server всем производным таблицам должен быть присвоен псевдоним [исключение - если ничего из них не выбрано, например, в предложении IN/EXISTS
. Альтернативой тому, что вы делаете с SQL Server 2005 и выше, является использование общего табличного выражения, которое, кстати, теперь также доступно в последних версиях Oracle.
Простой бессмысленный псевдоним
select * from
(select emp_name + ' ' + surname as employee from ca_contact) [ ]
Общее табличное выражение, также именующее столбец одновременно
;WITH [ ](employee) AS (
select emp_name + ' ' + surname
from ca_contact)
select * from [ ]
FWIW, вы можете опустить имена столбцов CTE и извлечь их из запроса
WITH [ ] AS (
select emp_name + ' ' + surname as employee
from ca_contact)
select * from [ ]
Примечание: Не уверен, как можно получить emp.surname
, поскольку в вашем запросе не определена таблица / псевдоним emp