This documentation is for the unreleased development version of jOOQ. Click on the above version links to get this documentation for a supported version of jOOQ.
XOR
Applies to ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
The exclusive or (XOR
) operator is true only if one of the operands is true, not both.
(TITLE = 'Animal Farm' XOR AUTHOR.LAST_NAME = 'Orwell')
BOOK.TITLE.eq("Animal Farm").xor(AUTHOR.LAST_NAME.eq("Orwell"))
Dialect support
This example using jOOQ:
BOOK.TITLE.eq("Animal Farm").xor(AUTHOR.LAST_NAME.eq("Orwell"))
Translates to the following dialect specific expressions:
-- ACCESS, AURORA_MYSQL, MARIADB, MYSQL ( BOOK.TITLE = 'Animal Farm' XOR AUTHOR.LAST_NAME = 'Orwell' ) -- ASE, DB2, FIREBIRD, ORACLE, SQLDATAWAREHOUSE, SQLSERVER, SYBASE, TERADATA CASE WHEN BOOK.TITLE = 'Animal Farm' THEN 1 WHEN NOT (BOOK.TITLE = 'Animal Farm') THEN 0 END <> CASE WHEN AUTHOR.LAST_NAME = 'Orwell' THEN 1 WHEN NOT (AUTHOR.LAST_NAME = 'Orwell') THEN 0 END -- AURORA_POSTGRES, BIGQUERY, COCKROACHDB, DERBY, DUCKDB, EXASOL, H2, HSQLDB, MEMSQL, POSTGRES, REDSHIFT, SNOWFLAKE, -- SQLITE, TRINO, VERTICA, YUGABYTEDB (BOOK.TITLE = 'Animal Farm') <> (AUTHOR.LAST_NAME = 'Orwell') -- HANA CASE WHEN BOOK.TITLE = 'Animal Farm' THEN TRUE WHEN NOT (BOOK.TITLE = 'Animal Farm') THEN FALSE END <> CASE WHEN AUTHOR.LAST_NAME = 'Orwell' THEN TRUE WHEN NOT (AUTHOR.LAST_NAME = 'Orwell') THEN FALSE END -- INFORMIX CASE WHEN BOOK.TITLE = 'Animal Farm' THEN CAST('t' AS boolean) WHEN NOT (BOOK.TITLE = 'Animal Farm') THEN CAST('f' AS boolean) END <> CASE WHEN AUTHOR.LAST_NAME = 'Orwell' THEN CAST('t' AS boolean) WHEN NOT (AUTHOR.LAST_NAME = 'Orwell') THEN CAST('f' AS boolean) END
(These are currently generated with jOOQ 3.19, see #10141), or translate your own on our website
Feedback
Do you have any feedback about this page? We'd love to hear it!