Comparison & Filter Operators
These operators cover numeric comparisons, logical combinators, bitwise operations, and special identifier access syntax. Support is near-complete, with two exceptions noted in the table.
Legend: ✅ Supported · ⚠️ Approximated · ❌ Not Supported · 🔄 Rewritten
| Feature | SQLite | MySQL | ClickHouse | PostgreSQL | DuckDB | Notes |
|---|---|---|---|---|---|---|
<, <=, >, >= | ✅ | ✅ | ✅ | ✅ | ✅ | |
and / or / not | ✅ | ✅ | ✅ | ✅ | ✅ | |
Bitwise binary_and(), binary_or(), binary_xor(), binary_shift_left(), binary_shift_right(), binary_not() | ❌ | ❌ | ✅ | ✅ | ✅ | KQL spells these as functions, not infix operators. ClickHouse gets its named bit functions; PostgreSQL and DuckDB get the infix &, |, #, <<, >>, ~ — except DuckDB's XOR, which becomes xor(a, b) since it has no infix form. MySQL and SQLite reject them, because KQL masks a 64-bit shift count to 6 bits and their infix operators would silently diverge rather than match |
notin / notin~ | ✅ | ✅ | ✅ | ✅ | ✅ | Alias for !in / !in~ |
Bracketed identifiers ['col name'] | ✅ | ⚠️ | ✅ | ✅ | ✅ | Quoted with backticks for ClickHouse and double quotes for everything else, MySQL included. MySQL accepts double-quoted identifiers only with ANSI_QUOTES enabled; without it, an identifier needing quotes fails |
Dotted column access a.b | ✅ | ✅ | ✅ | ✅ | ✅ | Mapped to each dialect's JSON field extraction |