SQL将多列中的不同值连接成一行

时间:2015-02-15 12:10:15

标签: mysql sql

我有3列标签

 PRODUCT....CATEGORY......CLASS
 X............1.............II
 Y............1.............II
 Z............1.............II
 Y............2.............II

我希望返回包含每列所有DISTINCT值的单行:

 RESULT

 X Y Z 1 2 II

获得此结果的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

假设列之间没有重复项,您可以使用group_concat()

select concat_ws(' ',
                 group_concat(distinct product separator ' '),
                 group_concat(distinct category separator ' '),
                 group_concat(distinct class separator ' ')
                )
from tab t;

答案 1 :(得分:1)

您可以先收集子选择中的所有值,然后使用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

SQLFiddle