>CLEAR >CREATE CURSOR _TABLE (F1 INT NULL) > >INSERT INTO _TABLE VALUES (NULL) > >* this is like a correct reference, and return a 0 records cursor >SELECT 1 FROM _TABLE T1 WHERE T1.F1 NOT IN (NULL) > >* BUG: this return 1 record, correct is 0 record >SELECT 2 FROM _TABLE T1 WHERE T1.F1 NOT IN (SELECT F1 FROM _TABLE T2) > >* BUG: this return 1 record, correct is 0 record >SELECT 3 FROM _TABLE T1 WHERE T1.F1 <> ALL (SELECT F1 FROM _TABLE T2) >>
>SELECT ... FROM TABLE1 LEFT JOIN TABLE2 ON joinCondition >WHERE ... AND TABLE2.FieldName NOT IN (Subquery2) > >or > >SELECT ... FROM TABLE1 RIGHT JOIN TABLE2 ON joinCondition >WHERE ... AND TABLE1.FieldName NOT IN (Subquery1) > >or > >SELECT ... FROM TABLE1 FULL JOIN TABLE2 ON joinCondition >WHERE ... >AND TABLE1.FieldName NOT IN (Subquery1) >AND TABLE2.FieldName NOT IN (Subquery2) >>
>at >... AND (FieldName IS NOT NULL AND FieldName NOT IN (Subquery)) ... >or >... AND (FieldName IS NOT NULL AND FieldName <> ALL (Subquery)) ... >>