簡體   English   中英

SQL將多個列中的不同值連接成一行

[英]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

SQLFiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM