Oracle: Hur dela värden i kolumner

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

tips och varningar


  • MAX är en Oracle mängdfunktion som hittar det högsta värdet för en lista över värden , oavsett om alfanumerisk , numerisk eller data .
  • DECODE är en Oracle -funktion som omvandlar fältvärden som nydöpta kolumn .
  • Visited 1 times, 1 visit(s) today

    コメント

    タイトルとURLをコピーしました