|The jOOQ User Manual : SQL building : QueryParts : SQL transformation : Pattern based transformation : Merge NOT with comparison predicates||previous : next|
This is experimental functionality, and as such subject to change. Use at your own risk!
Merge NOT with comparison predicates
Applies to ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
The NOT predicate inverts its argument predicate. If the argument predicate is a comparison predicate, we can simply merge the two operators to invert the argument into the inverse comparison predicate.
Using Settings.transformPatternsNotComparison, the following transformations can be achieved:
-- With Settings.transformPatternsNotComparison active, this: SELECT NOT (a = b), NOT (a != b), NOT (a > b), NOT (a >= b), NOT (a < b), NOT (a <= b) FROM tab; -- ... is transformed into the equivalent expression: SELECT a != b, -- NOT (a = b) a = b, -- NOT (a != b) a <= b, -- NOT (a > b) a < b, -- NOT (a >= b) a >= b, -- NOT (a < b) a > b -- NOT (a <= b) FROM tab;