Bonjour,
Je travaille sur un ERP qui livre en standard des vues de ce type :
Code sql : 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 create view mavue ( col1, col2, col3, col4, col5, col6 ) as select table1.col1, table1.col2, table2.col3, table2.col4, table3.col5, table3.col6 from table1, table2, table3 where table2.id = table1.fk_table2 and table3.id = table1.fk_table3 union all select table1.col1, table1.col2, table2.col3, table2.col4, ' ', ' ' from table1, table2 where table2.id = table1.fk_table2 and not exists ( select 1 from table3 where table3.id = table1.fk_table3 );
Vu que ça me fait froid dans le dos à chaque fois que je tombe dessus, et que je dois les dériver pour les personnaliser, je souhaite les réécrire de cette façon :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create view mavue ( col1, col2, col3, col4, col5, col6 ) as select table1.col1, table1.col2, table2.col3, table2.col4, coalesce(table3.col5, ' '), coalesce(table3.col6, ' ') from table1 inner join table2 on table2.id = table1.fk_table2 left outer join table3 on table3.id = table1.fk_table3;
Est-ce que je risque quoi que ce soit :
- en terme de données (pour moi, les deux écritures sont strictement équivalentes en terme de résultat, mais je voudrais en être certain)
- en terme de performances (pour moi, la nouvelle syntaxe est plus rapide, mais comment en être sûr ?)
Ces vues tournent sous Oracle 11gR2.
Partager