Bonjour,
Je dois reprendre des requêtes Oracle et les passer en SQL normalisé.
Cela fait bien longtemps que je n'ai pas pratiqué les opérateurs hors norme d'Oracle.
J'ai retrouvé ces règles de base :
Je suppose que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 select * from TMP_A A , TMP_B B where A.CLE = B.CLE ; /* équivaut à */ select * from TMP_A A inner join TMP_B B on A.CLE = B.CLE ; select * from TMP_A A , TMP_B B where A.CLE (+) = B.CLE ; /* équivaut à */ select * from TMP_A A right join TMP_B B on A.CLE = B.CLE ; select * from TMP_A A , TMP_B B where A.CLE = B.CLE (+) ; /* équivaut à */ select * from TMP_A A left join TMP_B B on A.CLE = B.CLE ;
Mais je me trouve face à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 select * from TMP_A A , TMP_B B where A.CLE (+) = B.CLE and A.VAL (+) = 'X' ; /* équivaut à */ select * from TMP_A A right join TMP_B B on A.CLE = B.CLE and A.VAL = 'X' ;
Comment l'écririez vous avec jointure normalisée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select * from TMP_A A , TMP_B B where A.CLE = B.CLE and A.VAL (+) = 'X' ;
Partager