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

Откуда:
Сообщений: 53
есть два поля (aa и bb), в первом числа>0, во втором числа и Null'ы
Требуется создать поле, в котором будет aa, если bb не NULL и 0, если bb есть null

то есть, это будет что-то вроде
select maximum(IsNull(bb,0), aa) as newpole

проблема, в том, что я знаю только агрегатную MAX, а мне нужен максимум из двух значений, а не из всех полей. Как можно решить эту задачу? (сильно не ругайте :-) )
17 дек 09, 09:16    [8078547]     Ответить | Цитировать Сообщить модератору
 Re: MAX не агрегатный.  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
CASE
17 дек 09, 09:25    [8078580]     Ответить | Цитировать Сообщить модератору
 Re: MAX не агрегатный.  [new]
step_ks
Member

Откуда:
Сообщений: 936
select m = (select max(m) from (select t.bb union all select t.aa) t1(m) ) from t
17 дек 09, 09:39    [8078646]     Ответить | Цитировать Сообщить модератору
 Re: MAX не агрегатный.  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
А мне показалось, что автору нужно:
select CASE WHEN  IsNull(bb,0)> aa THEN IsNull(bb,0)
                 ELSE aa
          END as newpole
 FROM myTable
17 дек 09, 09:43    [8078663]     Ответить | Цитировать Сообщить модератору
 Re: MAX не агрегатный.  [new]
step_ks
Member

Откуда:
Сообщений: 936
Ну isnull уж автор вопроса сам добавит как надо.
17 дек 09, 09:47    [8078688]     Ответить | Цитировать Сообщить модератору
 Re: MAX не агрегатный.  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
xKIA
будет aa, если bb не NULL и 0, если bb есть null
SELECT CASE WHEN bb IS NULL THEN 0 ELSE aa END FROM T;
17 дек 09, 09:49    [8078695]     Ответить | Цитировать Сообщить модератору
 Re: MAX не агрегатный.  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
iap,

а мне нужен максимум из двух значений, а не из всех полей

А эту фразу вы как учли?
17 дек 09, 09:53    [8078719]     Ответить | Цитировать Сообщить модератору
 Re: MAX не агрегатный.  [new]
step_ks
Member

Откуда:
Сообщений: 936
--__Александр__--, да автор словами написал одно, а кодом показал другое.
17 дек 09, 09:59    [8078749]     Ответить | Цитировать Сообщить модератору
 Re: MAX не агрегатный.  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
--__Александр__--
iap,

а мне нужен максимум из двух значений, а не из всех полей

А эту фразу вы как учли?
Как полное непонимание автора темы, что же ему надо!
Или плохое владение русским языком.
17 дек 09, 10:02    [8078767]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить