как создать / добавить столбец в SQL select query на основе значений другого столбца

Я хочу динамически добавить еще один столбец "hook_name" через запрос select SQL, основанный на условии, Например, если hook_type=0, таблица hook_name должно иметь значение "предложение", аналогично для hook_type=1, hook_name должен показывать "ACCEPT".

Ниже приведен скриншот результата.

http://imgur.com/DY9rQBx

запрос select таков.

select hook_type, 'hook name' as hook_name,
       count(*) as number_of_exchange_activities 
from `exchange` 
group by hook_type # hook_type 0 for OFFER, 1 for ACCEPT and 2 for offer EXPIRED;

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

2 ответов


используйте стандартный случай SQL:

SELECT hook_type, 
   CASE hook_type
      WHEN 0 THEN 'OFFER'
      WHEN 1 THEN 'ACCEPT'
      WHEN 2 THEN 'EXPIRED'
   END AS hook_name,
   COUNT(*) AS number_of_exchange_activities 
FROM `exchange` 
GROUP BY hook_type

select case when hook_type = 0 then 'offer'
            when hook_type = 1 then 'accept'
            else 'expired'
       end as hook_t, 
      `hook name` as hook_name,
      count(*) as number_of_exchange_activities 
from `exchange` 
group by hook_t

кстати, я думаю, вы хотите избежать имени столбца hook name. Затем использовать обратные апострофы, а не кавычки.