Fråga : Hur man skriver sql-meddelande s gäll två bordlägger beställer in?

Ha en bordlägga A och bordlägga B:
In A: A, 5) primära nyckel- (för ID1 varchar2 (, sjunker varchar2 (2))
--------
Apple       F
Orange    F
Pear         F
Pork         M
Beef        M
Tomato    V
....
In B:
för B (primära ID2 varchar2 (5) stämm)---------
12123
23234
22323
43234
98090
89878
23454
67689
09877
98000
00765
....
….,
Want som gör en bordlägga C som efter långt innehåller A och B i:
för
C 5) primära nyckel- (för ID1 varchar2 (, sjunker varchar2 (2), primär ID2 varchar2 (5) stämm)---------hjälpmedlet för
That för
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 00765
..... baseras på, sjunker. Om sjunka = F, only ta ett rekord från A och B för att göra ett rekord i C; om sjunka =M, ta ett rekord i A och upprepat en tid och två rekord från B att göra två rekord i C; om flag=V, tar ett rekord i A och upprepat 3 tider och 4 rekord från B att göra 4 rekord i C. Där är ganska några rekord i båda bordlägger a- och B.-
Is där any långt till wite ett SQL-meddelande för att handla med det? Om så, hur om pl/sql en?
Thanks i förskott.


" klar "

Svar : Hur man skriver sql-meddelande s gäll två bordlägger beställer in?


MED x SOM
(
VÄLJ seq ROWNUM, id1, sjunka
FRÅN (VALDA id1, sjunker,
FALLET sjunker
NÄR ”F”,
DÄREFTER 1
NÄR ”M”,
DÄREFTER 2
ANNARS 3
AVSLUTA cntr
FRÅN a) a,
BORDLÄGGA (CAST (MULTISET (VALD cntr + JÄMNAR - 1
FRÅN DUBBEL
FÖRBIND VID JÄMNT <>),
)),
y SOM
(Seq VALD ROWNUM, id2
FRÅN b
BESTÄLLA VID id2),
VÄLJ id1, sjunka, id2
FRÅN x y
VAR x.seq = y.seq
BESTÄLLA sjunker BY;



Andra lösningar  
 
programming4us programming4us