2017-06-06 106 views
0

problem如何拆分排成多列在MySQL

喜有人可以幫助我,我就如何此行具有相同的ID號分隔成列的一些問題。我已經嘗試了一些SQL函數像GROUP_CONCAT()SUBSTRING_INDEX()功能,但我不知道它是如何工作

Output

我所要的輸出是這個樣子

+1

請發表您的樣品你的問題裏面格式化文本(不要使用圖片,PLS) – etsa

回答

1

應該解決您的問題:

INSERT INTO output SELECT 
    input.ID, 
    MIN(input.Unit_Cost), 
    MAX(input.Unit_Cost) 
FROM input 
GROUP BY input.ID 
0

您可以嘗試數據透視表查詢:

SELECT 
    t1.`Unit_Cost` as `Unit_Cost1`, 
    ifnull(t2.`Unit_Cost`,'') as `Unit_Cost2` 
FROM table t1 
LEFT JOIN table t2 
ON t1.`ID` = t2.`ID` 
GROUP BY `ID` 
ORDER BY `ID` 
0

我想你不能將它分離爲列,因爲那麼你可以理性地擁有無限數量的列,當ID對於無限數量的行將是相同的。但是您可以按照您的建議製作GROUP_CONCACT(),然後將應用程序中的值與例如split()函數分開。

SELECT ID, GROUP_CONCAT(Unit_Cost SEPARATOR ';') Unit_Cost 
FROM CostTable 
GROUP BY ID 

Here are more examplesGROUP_CONCAT()