Vraag : Hoe te om sql te schrijven impliceert de verklaring s twee lijsten in orde?

Heb een lijst A en lijst B:
In A: A (ID1 varchar2 (5) primaire sleutel, vlag varchar2 (2))

Apple       F
Orange    F
Pear         F
Pork         M
Beef        M
Tomato    V
....
In B: B (ID2 varchar2 (5) primaire sleutel)

12123
23234
22323
43234
98090
89878
23454
67689
09877
98000
00765
....
….
Want om een lijst te maken C die A en B op de volgende manier bevatten:
C (ID1 varchar2 (5) primaire sleutel, vlag varchar2 (2), ID2 varchar2 (5) primaire sleutel)

Apple F 12123
Orange F 23234
Pear F 22323
Pork M 43234
Pork M 98090
Beef M 89878
Beef M 23454
Tomato V 67689
Tomato V 09877
Tomato V 98000
Tomato V middelen 00765
.....
That op vlag worden gebaseerd die. Als de vlag = F, slechts één verslag van A en B neemt om een verslag in C te maken; als de vlag =M, één verslag in A en herhaald één keer en twee verslagen van B neemt om twee verslagen in C te maken; als flag=V, één verslag in A en herhaald 3 keer en 4 verslagen van B neem om 4 verslagen in C. te maken. Daar zijn heel wat verslagen in zowel lijsten A als B.
Is daar om het even welke manier aan wite een SQL verklaring om het te behandelen? Als zo, hoe over pl/sql?
Thanks vooraf.


Antwoord : Hoe te om sql te schrijven impliceert de verklaring s twee lijsten in orde?


MET x ZOALS
(
SELECTEER seq ROWNUM, id1, vlag
VAN (UITGEZOCHTE id1, vlag,
De vlag van het COMPUTER-AIDED SOFTWARE ENGINEERING
WANNEER „F“
DAN 1
WANNEER „M“
DAN 2
ANDERS 3
EIND cntr
VAN a) a,
GEGOTEN LIJST ((MULTISET (SELECTEER CNTR + NIVEAU - 1
VAN DUBBEL
VERBIND DOOR NIVEAU <>)
)),
y ZOALS
(UITGEZOCHTE seq ROWNUM, id2
VAN B
ORDE DOOR id2)
SELECTEER id1, vlag, id2
VAN x, y
WAAR x.seq = y.seq
ORDE DOOR vlag;



Andere oplossingen  
 
programming4us programming4us