Проблема внутреннего запроса SQL Server - PullRequest
1 голос
/ 11 февраля 2011

У меня очень простой запрос в SQL Server.Но это дает ошибки.

select * from(
 select emp_name + ' ' + emp.surname as employee from ca_contact
)

Этот запрос не работает.Но когда я пишу, как показано ниже, это работает:

select emp_name + ' ' + emp.surname as employee from ca_contact

Ответы [ 4 ]

2 голосов
/ 11 февраля 2011

Вам понадобится псевдоним. В этом случае foobar

select * from
   (select emp_name + ' ' + emp.surname as employee from ca_contact) foobar
1 голос
/ 11 февраля 2011

Я думаю, вам нужно указать псевдоним таблицы -

select * from(
 select emp_name + ' ' + emp.surname as employee from ca_contact
) t1
0 голосов
/ 07 апреля 2014

Пожалуйста, попробуйте следующий запрос

select employee from (select emp_name + ' ' + emp.surname as employee from ca_contact) as test
0 голосов
/ 13 февраля 2011

В 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...