2017-08-27 24 views
-3
SELECT GROUP_CONCAT(`flim_category_name` SEPARATOR '*') 
`flim_category_name`,country, GROUP_CONCAT(`flim_video` SEPARATOR '*') flim_video, 
    GROUP_CONCAT(`flim_video_images` SEPARATOR '*') flim_video_images FROM 
    flim_management_table GROUP BY `country` limit 0,1 

在此查詢我收到表的結構是這樣集團CONCAT值與其他行分開的名稱在SQL查詢

flim_category_name country  flim_video          flim_video_images 
Guru*Mersal*Aadi  India ww.com,ww.com,ww.com* ww.com,ww.com,ww.com* ,,,  217953157.jpg,,,,,,,,,*,,,,,,,,, 

我需要開始的,而不是單獨的一行這樣

分離器
flim1 flim2 flim3 country  flim_video1    flim_video2  flim_video3 images1  image2  image 3 
Guru Mersal Aadi  India ww.com,ww.com,ww.com ww.com,ww.com,ww.com  ,,, 217953157.jpg,,, ,,,,,  ,,,,, 

我需要像這樣構建表。

+2

到目前爲止你有什麼試過..? –

+1

Mysql和Oracle數據庫是不同的..哪一個你使用..? –

+0

這沒有答案。我們怎樣通過「連接列」來知道你的意思?什麼專欄? –

回答

0

在Oracle中,我能想出的最好是這樣的。

WITH f AS 
(
     SELECT 'Ghajini'    film_category_name , 
       'INDIA'    country , 
       'IMG1.jpg,iMAGE2.JPG' flim_images, 
       'WW.COM,WW.COM,WW.COM' flim_url 
     FROM dual 
     UNION ALL 
     SELECT 'dIWALE'    film_category_name , 
       'INDIA'    country , 
       'IMG1.jpg,iMAGE2.JPG' flim_images, 
       'WW.COM,WW.COM'  flim_url 
     FROM dual 
     UNION ALL 
     SELECT 'gURU'    film_category_name , 
       'SOUTH AFRICA'  country, 
       'IMG1.jpg,iMAGE2.JPG' flim_images, 
       'WW.COM,WW.COM'  flim_url 
     FROM dual), f2 AS 
(
     SELECT f.* , 
        Row_number() over (PARTITION BY country ORDER BY ROWNUM) rn 
     FROM  f), f3 AS 
(
     SELECT Listagg(film_category_name,',') within GROUP (ORDER BY ROWNUM) over (PARTITION BY country) film_category_name , 
        country , 
        flim_images, 
        flim_url, 
        rn 
     FROM  f2) 
SELECT * 
FROM f3 pivot (max(flim_images) AS flim_images_row , 
        max(flim_url) AS flim_url FOR rn IN (1,2)) p 
ORDER BY film_category_name; 

輸出是這樣的:

FILM_CATEGORY_NAME COUNTRY   1_FLIM_IMAGES_ROW 1_FLIM_URL    2_FLIM_IMAGES_ROW 2_FLIM_URL 
Ghajini,dIWALE   INDIA   IMG1.jpg,iMAGE2.JPG WW.COM,WW.COM,WW.COM IMG1.jpg,iMAGE2.JPG WW.COM,WW.COM 
gURU     SOUTH AFRICA  IMG1.jpg,iMAGE2.JPG WW.COM,WW.COM - 

如果你不知道你會爲每個country的行數,那麼你唯一的選擇是動態生成和執行查詢使用動態SQL.I不會推薦它,因爲表的結構和設計對於任何數據提取都是低效的。您需要重組您的組件,並根據需要創建單獨的表來存儲和檢索有用的數據。

+0

它不工作在sql, – vallavan