2016-04-10 17 views
0

İyi günler !. SQLite'de nasıl dönüş yapabileceğimi bilmek istiyorum. Bu yapıya sahip bir tablo var:SQLite'de Pivot (sütunları satırlara dönüştür)

IDUR IDPIX 

2345 4567 

2345 4568 

2345 4569 

Bunu almak gerekir:

IDUR IDPIX1 IDPIX2 IDPIX3 

2345 4567 4568 4569 

kimse bana SQLite kullanarak, bu nedenle elde etmek için bazı ipuçları vererek yardımcı olabilir mi ?? peşin

Teşekkür

cevap

0

SQLite yüzden bu zor döner, row_number() (benzer ya da bir şey) desteklemez. Belki group_concat() yeterlidir:

select idur, group_concat(IDPIX) as IXPIXes 
from t 
group by idur; 

Bu kolaydır. Ama tam olarak ne istediğini üretmiyor.

DÜZENLEME:

select idur, 
     max(case when seqnum = 1 then IDPIX end) as IDPIX_1, 
     max(case when seqnum = 2 then IDPIX end) as IDPIX_2, 
     max(case when seqnum = 3 then IDPIX end) as IDPIX_3 
from (select t.*, row_number() over (partition by idur order by NULL) as seqnum 
     from t 
    ) t 
group by idur; 

MySQL, en kolay yolu değişkenleri kullanır:

Postgres olarak, koşullu toplanmasına veya crosstab() kullanmak.

+0

Tarlalardaki değerler satır numarası değil, 2345, 4567, 4568 ve 4569 her alandaki içerik dizesi değerleridir. Cevaben çok teşekkürler. –

+0

Mysql veya postgresql gibi başka bir araç kullanarak nasıl yapıldığını biliyor musunuz? –