2016-04-24 5 views
2

Можно ли выбрать псевдоним столбца без использования подзапросов в sql 2008?SQL column select alias без подзапроса

*****, что я хотел бы сделать: ******

Select col1*col2 as NewColumn, NewColumn*col3 from table 

Когда я пытаюсь это, хотя я получаю ошибку:

Invalid column name 'NewColumn'

*** * то, что я делаю сейчас вместо *****

Select Newcolumn*col3 from (Select col1*col2, col3 from mytable) Q1 

Я хотел бы избежать подзапроса, где это возможно, как я присоединяюсь много таблиц и хочет сделать запрос более читаемым.

Возможно, есть еще лучший способ сделать это?

Заранее спасибо.

+1

Используйте подзапрос или CTE. –

ответ

1

Вы можете использовать подзапрос или CTE. , , Или, если вы действительно хотите, outer apply:

select x.NewColumn, x.NewColumn * col3 
from . . . cross apply 
    (select col1*col2 as NewColumn) x; 
+1

Как видно из названия, я хотел бы избежать подзапроса .... как бы я использовал CTE? – Rdisnic

+0

@ Rdisnic. , , Ваш запрос состоит в том, чтобы избежать подзапросов, чтобы прочитать запрос. Добавление еще одного выражения в предложение 'FROM' не совпадает с дополнительным уровнем вложенности. –

0

Почему вы делаете это сложнее, когда вы можете легко сделать это,

Попробуйте это,

Select col1*col2 as NewColumn, col1*col2*col3 as NewColumn2 from table 

Надеются, что это поможет.

Смежные вопросы