Some parts in the output code are omitted for clarity reasons.
Description
An antijoin returns rows from the left side of the predicate for which there are no corresponding rows on the right side of the predicate. It returns rows that fail to match (NOT IN) the subquery on the right side. Antijoin transformation cannot be done if the subquery is on an OR branch of the WHERE clause. (Oracle SQL Language Reference Anti Join).
No special transformation is performed for this kind of Join since Snowflake supports the same syntax.
Sample Source Patterns
Order by clause added because the result order may vary between Oracle and Snowflake.
Since the result set is too large, Row Limiting Clause was added. You can remove it to retrieve the entire result set.
SELECT e.employee_id, e.first_name, e.last_name FROM hr.employees eWHERE e.department_id NOTIN (SELECT h.department_id FROM hr.departments h WHERE location_id =1700)ORDER BY e.last_nameFETCHFIRST10ROWS ONLY;
SELECT e.employee_id, e.first_name, e.last_name FROM hr.employees eWHERE e.department_id NOTIN !!!RESOLVE EWI!!! /*** SSC-EWI-0108 - THE FOLLOWING SUBQUERY MATCHES AT LEAST ONE OF THE PATTERNS CONSIDERED INVALID AND MAY PRODUCE COMPILATION ERRORS ***/!!! (SELECT h.department_id FROM hr.departments h WHERE location_id =1700)ORDER BY e.last_nameFETCHFIRST10ROWS ONLY;
SELECT d.department_id, d.department_nameFROM hr.departments dWHERENOTEXISTS (SELECT1FROM hr.employees E WHERE e.department_id = d.department_id)ORDER BY d.department_idFETCHFIRST10ROWS ONLY;
SELECT d.department_id, d.department_nameFROM hr.departments dWHERENOTEXISTS !!!RESOLVE EWI!!! /*** SSC-EWI-0108 - THE FOLLOWING SUBQUERY MATCHES AT LEAST ONE OF THE PATTERNS CONSIDERED INVALID AND MAY PRODUCE COMPILATION ERRORS ***/!!! (SELECT1FROM hr.employees E WHERE e.department_id = d.department_id)ORDER BY d.department_idFETCHFIRST10ROWS ONLY;
The result of the query will have the same content in both database engines but the order might be different if no Order By clause is defined in the query.
Related EWIs
SSC-EWI-0108: This subquery matches a pattern considered invalid and may cause compilation errors.