Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

Passer du SQL oracle au SQL ansi

https://stackoverflow.com/questions/18891148/oracle-joins-comparison-between-conventional-syntax-vs-ansi-syntax#

 

 

┌───────────────────────────────────┬─────────────────────────────────────────────┐
 INNER JOIN - CONVENTIONAL          INNER JOIN - ANSI SYNTAX                    
├───────────────────────────────────┼─────────────────────────────────────────────┤
 SELECT                             SELECT                                      
      emp.deptno                          ename,                                
 FROM                                     dname,                                
      emp,                                emp.deptno,                           
      dept                                dept.deptno                           
 WHERE                              FROM                                        
      emp.deptno = dept.deptno;           scott.emp INNER JOIN scott.dept       
                                          ON emp.deptno = dept.deptno;          
├───────────────────────────────────┼─────────────────────────────────────────────┤
 LEFT OUTER JOIN - CONVENTIONAL     LEFT OUTER JOIN - ANSI SYNTAX               
├───────────────────────────────────┼─────────────────────────────────────────────┤
 SELECT                             SELECT                                      
      emp.deptno                         ename,                                 
 FROM                                    dname,                                 
      emp,                               emp.deptno,                            
      dept                               dept.deptno                            
 WHERE                              FROM                                        
      emp.deptno = dept.deptno(+);       scott.emp LEFT OUTER JOIN scott.dept   
                                         ON emp.deptno = dept.deptno;           
├───────────────────────────────────┼─────────────────────────────────────────────┤
 RIGHT OUTER JOIN - CONVENTIONAL    RIGHT OUTER JOIN - ANSI SYNTAX              
├───────────────────────────────────┼─────────────────────────────────────────────┤
 SELECT                             SELECT                                      
      emp.deptno                         ename,                                 
 FROM                                    dname,                                 
      emp,                               emp.deptno,                            
      dept                               dept.deptno                            
 WHERE                              FROM                                        
      emp.deptno(+) = dept.deptno;       scott.emp RIGHT OUTER JOIN scott.dept  
                                         ON emp.deptno = dept.deptno;           
├───────────────────────────────────┼─────────────────────────────────────────────┤
 FULL OUTER JOIN - CONVENTIONAL     FULL OUTER JOIN - ANSI SYNTAX               
├───────────────────────────────────┼─────────────────────────────────────────────┤
 SELECT                             SELECT                                      
      *                                  *                                      
 FROM                               FROM                                        
      emp,                               scott.emp FULL OUTER JOIN scott.dept   
      dept                               ON emp.deptno = dept.deptno;           
 WHERE                                                                          
      emp.deptno = dept.deptno(+)                                               
 UNION ALL                                                                      
 SELECT                                                                         
      *                                                                         
 FROM                                                                           
      emp,                                                                      
      dept                                                                      
 WHERE                                                                          
      emp.deptno(+) = dept.deptno                                               
      AND emp.deptno IS NULL;                                                   
└───────────────────────────────────┴─────────────────────────────────────────────┘

Les commentaires sont fermés.