Oracle in & exists

--IN 转换为 EXISTS 和 NOT EXISTS
SELECT * FROM test2 t2 WHERE t2.col1 IN ('2' );
SELECT * FROM test2 t2 WHERE EXISTS (SELECT * FROM test2 t WHERE t.col1 = t2.col1 AND t.col1 = '2' )
SELECT * FROM test2 t2 WHERE NOT EXISTS (SELECT * FROM test2 t WHERE t.col1 = t2.col1 AND t.col1 != '2')

--NOT IN 转换为 EXISTS 和 NOT EXISTS
SELECT * FROM test2 t2 WHERE t2.col1 NOT IN ('2');
SELECT * FROM test2 t2 WHERE EXISTS (SELECT * FROM test2 t WHERE t.col1 = t2.col1 AND t.col1 != '2' );
SELECT * FROM test2 t2 WHERE NOT EXISTS (SELECT * FROM test2 t WHERE t.col1 = t2.col1 AND t.col1 = '2');

猜你喜欢

转载自southking.iteye.com/blog/1727990