[英]SQL Concatenating distinct values from multiple columns into one row
我有这3列标签
PRODUCT....CATEGORY......CLASS
X............1.............II
Y............1.............II
Z............1.............II
Y............2.............II
我想返回一行,每列的所有DISTINCT值都为:
RESULT
X Y Z 1 2 II
获得此结果的最佳方法是什么?
假设各列之间没有重复项,则可以使用group_concat()
:
select concat_ws(' ',
group_concat(distinct product separator ' '),
group_concat(distinct category separator ' '),
group_concat(distinct class separator ' ')
)
from tab t;
您可以先收集子选择中的所有值,然后使用group_concat
显示这些值
select group_concat(v separator ' ')
from (select product as v from testa
union
select category as v from testa
union
select class as v from testa) t
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.