Oracle – Clause where in case when

oracle

all!
I want to know how wrote this code of SQL, I already trying but i get message error.
I wrote two way different this SQL. See you below

SELECT *
  FROM tabela
 WHERE coluna IN (CASE WHEN 1 = :parametro THEN 1 WHEN 0 = :parametro THEN (2, 3) END)

And

SELECT *
  FROM tabela
 WHERE (CASE WHEN 1 = :parametro THEN coluna = 1 WHEN 0 = :parametro THEN coluna <> 1 END)

I tried to run but it get error. Please! you help to tick or fix this code.

Thank a lot.

Regards,
Jeison Pereira

Best Answer

One option is

SELECT *
  FROM tabela
 WHERE  'OK' =
         CASE WHEN   1 = :parametro and coluna = 1 then 'OK'
              WHEN   0 = :parametro and coluna in (2, 3) THEN 'OK'
         END