如何根据另一列的值在SQL select查询中创建/添加列?

Ahs*_*eer 8 mysql sql select

我想hook_name根据条件通过SQL select查询动态添加另一列.

例如,如果hook_type = 0,表hook_name应有的价值OFFER,同样的hook_type = 1,hook_name应该显示"接受".

以下是结果的屏幕截图:

在此输入图像描述

选择查询是这样的:

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;
Run Code Online (Sandbox Code Playgroud)

提前致谢.

dno*_*eth 14

使用标准SQL CASE:

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
Run Code Online (Sandbox Code Playgroud)


jue*_*n d 7

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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我想你想逃避列名hook name.然后使用反引号而不是引号.