Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > CASE WHEN THEN


Автор: Smorodin 5.1.2011, 16:45
К примеру, есть запрос:

Код

SELECT ntfc_news.action, ntfc_news.from_t, ntfc_news.from_id, ntfc_news.p_id,
CASE WHEN ntfc_news.from_t =1
THEN (

SELECT `name`
FROM `profiles`
WHERE `uid` = ntfc_news.from_id
LIMIT 1
)
WHEN ntfc_news.from_t =2
THEN (

SELECT `group`
FROM `community`
WHERE `id` = ntfc_news.from_id
LIMIT 1
)
ELSE 'etc'
END AS `from_name`

FROM .....   WHERE.....


то есть результат ветвления выводится в поле from_name.

В некоторых ветвях необходим еще запрос, с выводом результата, скажем, AS `from_data`.

Как это сделать?

Автор: skyboy 5.1.2011, 17:18
вместо кучи case when - группа отдельных запросов, объединенных через union all

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)