Code:
select * from tabelle where ((:condition and (id = 1)) or (not :condition and (id = 20))
Der Plan wird aufgestellt, bevor dein Parameter zugewiesen wird (True, False, NULL).
So, als wenn da zwei unterschiedliche Parameter sind und deshalb beide Teilbedingungen wahr sein könnten.
Code:
select * from tabelle where id = iif(:condition, 1, 20)