我对mysql完全陌生。在这里,我尝试进行一个查询,其中根据其类别()按如下所示的排序顺序mysql
将一列分为 4 个不同的列。到目前为止,我已经写了一个这样的查询:col1
col2
select if(category = 'first',name ,NULL) as first,
if(category = 'second',name,NULL) as second,
if(category = 'third',name,NULL) as third,
if(category = 'fourth',name,NULL) as fourth
from 'table';
这段代码给了我四列,但我现在卡住了,因为我无法进一步过滤它。
给定表:
name category
John first
Sunil third
Jenny third
Ashley fourth
Meera second
Abhay first
必填答案:
col1 col2 col3 col4
Abhay Meera Jenny Ashley
John NULL Sunil NULL
请注意,答案中的所有列都已排序。
编辑:我想这个问题并不清楚最终答案的格式。感谢@philipxy 指出。最终答案应至少调整行数(在我的情况下为 2)。所有列的行数应该相等,如果某些列的值较小,那么该行将
NULL
在相应的列中具有值,例如col2
及col 4
以上。最后,所有列都应该按排序顺序排列在NULL
最后一个(如果有的话)中,例如假设有一个名为的条目Olly
,category
fourth
那么它应该出现在NULL
in之前col4
和之后Ashley
。