Bazen öyle bir durumla karşılaşırsınız ki satırlarınızın sütun olmasını istersiniz işte o zaman pivot fonksiyonu yardımınıza koşar.pivot fonksiyonu Oracle 11 g ile gelmiştir.
create table pivot_ex ( a varchar2(10), b number, c char(1) ); pivot_ex adındabir tablo create ettik.kayıt ekleyelim. insert into pivot_ex values ('foo', 1, 'y'); insert into pivot_ex values ('foo', 2, 'y'); insert into pivot_ex values ('foo', 3, 'y'); insert into pivot_ex values ('foo', 4, 'y'); insert into pivot_ex values ('foo', 99, 'n'); insert into pivot_ex values ('bar', 9, 'y'); insert into pivot_ex values ('bar', 11, 'y'); insert into pivot_ex values ('bar',-42, 'n'); insert into pivot_ex values ('baz', 30, 'y'); insert into pivot_ex values ('baz', 70, 'n'); şimdi eklediğimiz kayıtları görelim. select * from pivot_ex; A B C foo 1 y foo 2 y foo 3 y foo 4 y foo 99 n bar 9 y bar 11 y bar -42 n baz 30 y baz 70 n select alan1, alan2, alan3 from pivot_ex pivot( sum(b) for a in ('foo' alan1,'bar' alan2,'baz' alan3) ) where c = 'y'; sorgusu ile satırları sütun yapmış olduk a alanı için her bir değer için varolan değerlerin toplamını sum fonksiyonu ile aldık ve gösterdik. ALAN1 ALAN2 ALAN3 10 20 30 Burda sum yerine max,min,avg gibi fonksiyonlarıda kullanabiliriz. select alan1, alan2, alan3 from pivot_ex pivot( min(b) for a in ('foo' alan1,'bar' alan2,'baz' alan3) ) where c = 'y';ALAN1 ALAN2 ALAN3 1 9 30
eywallah sağol..eywallah sağol teşekkürler...
YanıtlaSil