Nogle gange er det en fordel at oprette kolonner ud af en flere værdier i en Oracle-database felt. Se dataværdier som kolonne , i modsætning til rækker , giver mulighed for forskellige datamanipulationer og præsentationer . Et eksempel kan være at udføre en matematisk operation på en liste fra et felt , men præsenteres som et resultat under en anden værdi, der repræsenterer en kategori for denne værdi. Dette kan opfattes som svarende til et gitter eller en cross- fanebladet chart. Instruktioner
1
se, hvilke data er tilgængelig via en forespørgsel. Eks: SELECT * FROM TABEL
følge af ovenstående forespørgsel kan give følgende tre kolonner med viste værdier
KATEGORI Varepris $
------ . A ----------- 1 -------- 5
------ A ----------- 2 --- ---- 10
------ B ----------- 2 ------- 10
------ B ----------- 3 ------- 15
------ C ----------- 3 ---- --- 15
------ C ----------- 4 ------- 20
2
Omskriv forespørgslen at oprette kolonner for kategori værdier.
SELECT
DECODE (kategori , 'A' , PUNKT , null) CATEGORYA , salg
DECODE (kategori , 'B', PUNKT , null) KATEGORIB , salg
DECODE (kategori , 'B', PUNKT , null ) CATEGORYC
FRA TABEL
Bemærk : Denne forespørgsel viser, hvordan én række værdier kan blive kolonner < br >
Resultat af Query
CATEGORYA KATEGORIB CATEGORYC
------- 1
------- 2
----------------------------- 2
------------- ---------------- 3 fotos
--------------------------- ------------------------- 3 fotos
------------------ ---------------------------------- 4 fotos
selvom KATEGORI er blevet opdelt i unikke kolonner har de datarækker ikke sammen . Seks rækker af data ( se Trin 1 resultat) stadig indtager seks rækker output
3
Omskriv forespørgslen for at finde den maksimale pris pr kategori kolonner: .
SELECT < br >
MAX ( DECODE (kategori , 'A' , $ PRICE , null) ) CATEGORYA , Amerikas
MAX ( DECODE (kategori , 'B' , $ PRICE , null) ) KATEGORIB ,
< p> MAX ( DECODE (kategori , 'C', $ PRICE , null) ) CATEGORYC
FRA TABEL
Bemærk : Hej
Denne forespørgsel viser nu en deraf række data . ( den maksimale pris ) pr kategori
Dette kan kontrolleres mod eksempel data i Trin 1
- . til CategoryA , er 10 maks. værdier 5 og 10
. - for kategoriB er 15 maksimalt værdier 10 og 15
- for CategoryC er 20 maksimalt værdier 15 og 20
Resultat af Query : .
CATEGORYA kATEGORIB . CATEGORYC
--------- 10 ---------- ------- 15 ---------- ----- 20