基于列的值动态列别名(Dynamic column alias based on column va

2019-09-02 04:33发布

我想命名基于MySQL的列值的列别名。 那可能吗?

像这样的事情;

select  
  case when answer_type = 'RB' then 
     answer_type as 'radio'
 else 
     answer_type as 'evrything_else'
 end case
from  XTable 

Answer 1:

不,那是不可能的纯SQL。 你可能不得不出查询数据,然后在任何应用程序正在执行的查询处理它。



Answer 2:

select if(answer_type="RB",true,NULL) as radio, 
if(answer_type != ="RB",true,NULL) as everything_else
from XTable;

你有你得到的结果是一个表,从选择的名称或别名是列标签来分割。 这种方法可以让你检查被返回的无线电的值(和everything_else的值)。

你现在要做的,看有没有办法让列标题的工作:

id | radio MAGICAL OR everytning_else |
1  | RB                               |
2  | NOT_RB                           |

什么我的方法会为你做:

id | radio | everything_else |
1  | true  | NULL            |
2  | NULL  | true            |


Answer 3:

如果选择(answer_type = “RB”, '无线电',如果(answer_type = “RB”, 'everything_else',NULL)!)从XTable answer_type;



文章来源: Dynamic column alias based on column value