Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Быстрое обращение в поле в select  [new]
Пашок
Member

Откуда:
Сообщений: 287
Подскажите, как можно обратиться в select к собственному выражению написанному в предыдущем поле?

Так пишу сейчас:
select 
pole1 + pole2 * 0.5 as pole_a
,  pole1 + pole2 * 0.5 as pole_b
from table

А хотелось бы так ( т.е. не повторять выражение предыдущего поля, а использовать его алиас):

select 
pole1 + pole2 * 0.5 as pole_a
,  pole_a * 0.5 as pole_b
from table
3 дек 09, 19:02    [8016526]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое обращение в поле в select  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
select pole_a
      ,pole_a * 0.5 as pole_b
  from (select pole1 + pole2 * 0.5 as pole_a
          from table
        ) as t
?
3 дек 09, 19:08    [8016538]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое обращение в поле в select  [new]
Пашок
Member

Откуда:
Сообщений: 287
Смысл именно в том, чтобы не дублировать саму формулу.
3 дек 09, 19:11    [8016549]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое обращение в поле в select  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
а где у меня дублируется формула?
3 дек 09, 19:12    [8016555]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое обращение в поле в select  [new]
Пашок
Member

Откуда:
Сообщений: 287
ок, т.е. получается нужно создать таблицу, а из нее уже запрашивать, алиас создать не получится?
3 дек 09, 23:04    [8017091]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое обращение в поле в select  [new]
Denis@nk
Member

Откуда:
Сообщений: 193
неправильный вывод. В приведенном примере вложенный запрос.
3 дек 09, 23:32    [8017149]     Ответить | Цитировать Сообщить модератору
 Re: Быстрое обращение в поле в select  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
А ещё есть APPLY (начиная с 2005-го):
SELECT	 X.pole_a
	,X.pole_a * 0.5	AS pole_b
FROM	Table T CROSS APPLY (SELECT T.pole1 + T.pole2 * 0.5 AS pole_a) X
Можете их клепать их друг за другом.
4 дек 09, 08:28    [8017581]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить