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;                                                   
    └───────────────────────────────────┴─────────────────────────────────────────────┘