1. not in A: SELECT col1,col2,col3 FROM table1 a WHERE a.col1 not in (SELECT col1 FROM table2) B:SELECT col1,col2,col3 FROM table1 a WHERE not exists (SELECT 'x' FROM table2 b WHERE a.col1=b.col1) B: is better than A. a<>0 to-> a>0 or a<0 a<>'' to-> a>'' 2. not null a>0 or a>'' is better than a is not null. 3.>= replace > A: SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0; B: SELECT * FROM EMP WHERE DEPTNO >3 A is better than B. 4.LIKE name LIKE '%jeck%' should be name LIKE 'Xjeck%' OR YY_BH LIKE 'Bjack%' 5.EXISTS v DISTINCT A: SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D , EMP E WHERE D.DEPT_NO = E.DEPT_NO B: SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS (SELECT 'X' FROM EMP E WHERE E.DEPT_NO = D.DEPT_NO); B is better than A 6. page A: select * from (select a.*, rownum as rnum from (select * from table1) a ...