Ibland är det fördelaktigt att skapa kolumner ur en flera värden i en Oracle -databas fält . Att se datavärden som kolumn , i motsats till rader , tillåter olika data manipulationer och presentationer. Ett exempel kan vara att utföra en matematisk operation på en lista från ett fält , men presenteras som ett resultat under en annan värde som motsvarar en kategori för det aktuella värdet . Detta kan ses som motsvarigheten till ett galler eller cross-fliken diagram
1
Se vilka data som ska tillgänglig via en fråga . Ex : SELECT * FROM tabell
Resultatet av ovanstående fråga kan ge följande tre kolumner med visas värden .
KATEGORI artikel Pris $
------ A ----------- 1 --- ----- 5
------ A ----------- 2 ------- 10
------ B ----------- 2 ------- 10
------ B ----------3 ------- 15
------ C ----------- 3 ------- 15
------ C ----------- 4 ------- 20
2 .
Rewrite frågan för att skapa kolumner för kategori värden .
SELECT
DECODE (kategori , " A " , punkt , null ) CATEGORYA ,
DECODE (kategori , " B " , punkt , null ) CATEGORYB ,
DECODE (kategori , " B " , punkt , null ) CATEGORYC
FRÅN tabell
OBS: Denna fråga visar hur en rad värden kan bli kolumner
Resultat av Sökning
CATEGORYA CATEGORYB CATEGORYC
------- 1
------- 2
---------- ------------------- 2
---------------------- ------- 3
---------------------------------- ------------------ 3
----------------------- ----------------------------- 4
Även kategorin delats upp i unika kolumner , göra kollaps dataraderna inte . Sex rader med data ( se Steg 1 träff ) upptar fortfarande sex rader av produktionen
3
Rewrite frågan för att hitta det högsta priset per kategori kolumner : .
VÄLJ
MAX ( DECODE (kategori , "A " , $ PRIS , null ) ) CATEGORYA ,
MAX ( DECODE (kategori , " B " , $ PRIS , null ) ) CATEGORYB ,
MAX ( DECODE (kategori , "C " , $ PRIS , null ) ) CATEGORYC
FRÅN tabell
Obs :
Denna fråga visar nu en följd rad med data ( det högsta pris ) per kategori .
Detta kan verifieras mot exemplet data i Steg 1 .
-för CategoryA , 10 är max värdena 5 och 10 .
-för CategoryB , 15 är högst värden 10 och 15.
-för CategoryC , 20 är högst värden 15 och 20 .
resultat Fråga:
CATEGORYA CATEGORYB CATEGORYC
--------- 10----------------- 15 ---------- ----- 20
Previous:nothing Next:hur du redigerar tpl filer