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

Откуда:
Сообщений: 58
Добрый день, подскажите можно ли вычисляемое поле в select-е использовать в том же select ещё раз, не пересчитывая его?


SELECT ....,
 CASE WHEN C.CUSTOMER_CLASS_CODE = 'CODE1' THEN 'text1'
			 WHEN ISNULL(OD.PRODUCT_CODE,'') <> '' THEN 'text2'
			 WHEN ISNULL(ODCOMP.PRODUCT_CODE,'') <> '' THEN 'text3'
			 ELSE 'NON-MEMBER'
 END AS LABEL_EXAMPLE,
       .....
FROM ...

в select-e много полей, case из трех таблиц связанных кучей условий, в подзапрос перенести не получится, а поле LABEL_EXAMPLE надо ещё раз использовать, чтобы склеить ещё с четырьмя полями для вывода одной строкой, можно как как-то использовать это полe не дублируя этот case?
3 июл 13, 16:50    [14517882]     Ответить | Цитировать Сообщить модератору
 Re: повтороное использование вычисляемого поля в select  [new]
Konst_One
Member

Откуда:
Сообщений: 11620
оберните свой запрос в select
3 июл 13, 16:51    [14517891]     Ответить | Цитировать Сообщить модератору
 Re: повтороное использование вычисляемого поля в select  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
cross apply (select CASE WHEN C.CUSTOMER_CLASS_CODE = 'CODE1' THEN 'text1'
			 WHEN ISNULL(OD.PRODUCT_CODE,'') <> '' THEN 'text2'
			 WHEN ISNULL(ODCOMP.PRODUCT_CODE,'') <> '' THEN 'text3'
			 ELSE 'NON-MEMBER'
 END)  LABEL_EXAMPLE(value)
3 июл 13, 16:52    [14517900]     Ответить | Цитировать Сообщить модератору
 Re: повтороное использование вычисляемого поля в select  [new]
lsk
Member

Откуда:
Сообщений: 58
Konst_One, не могу обернуть в select

Мистер Хенки, подскажите, пожалуйста, как в select-e правильно вызывть этот LABEL_EXAMPLE, мне пишет ошибку:
'LABEL_EXAMPLE' is not a recognized built-in function name.
3 июл 13, 17:21    [14518105]     Ответить | Цитировать Сообщить модератору
 Re: повтороное использование вычисляемого поля в select  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
lsk
Konst_One, не могу обернуть в select

Мистер Хенки, подскажите, пожалуйста, как в select-e правильно вызывть этот LABEL_EXAMPLE, мне пишет ошибку:
'LABEL_EXAMPLE' is not a recognized built-in function name.

это будет работать для >=2005

select
 LABEL_EXAMPLE.value
from table
cross apply (select CASE WHEN C.CUSTOMER_CLASS_CODE = 'CODE1' THEN 'text1'
			 WHEN ISNULL(OD.PRODUCT_CODE,'') <> '' THEN 'text2'
			 WHEN ISNULL(ODCOMP.PRODUCT_CODE,'') <> '' THEN 'text3'
			 ELSE 'NON-MEMBER'
 END)  LABEL_EXAMPLE(value)
3 июл 13, 17:29    [14518158]     Ответить | Цитировать Сообщить модератору
 Re: повтороное использование вычисляемого поля в select  [new]
lsk
Member

Откуда:
Сообщений: 58
Мистер Хенки, спасибо большое
3 июл 13, 17:32    [14518188]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить