Cláusula WHERE condicional com a instrução CASE no Oracle
Eu sou novinho em folha para o mundo da Oracle, então isso pode ser um softball. Ao trabalhar com um relatório do SSRS, estou passando uma cadeia de estados para uma exibição. A diferença é que os usuários também podem escolher uma seleção da lista de estados chamada "[No Selection]" ... (essa parte não estava sendo feita e estou preso a implementar as coisas dessa maneira)
Se eles escolherem a opção Sem Seleção, quero apenas retornar todos os estados por padrão, caso contrário, retornarei apenas a lista de estados que estão na minha lista separada por vírgulas.
Isso realmente parece que deve ser fácil, mas estou preso. Aqui está o código que eu tenho até agora (apenas tentando fazer com que uma amostra funcione), mas meus olhos finalmente se foram, tentando fazê-lo funcionar.
Alguém poderia me dar alguma direção sobre este, por favor?
begin :stateCode:='MO,FL,TX'; --:stateCode:='[ No Selection ]'; end; / select count(*) as StateCount, :stateCode as SelectedVal from hcp_state vw where (case when (:stateCode = '') then (1) when (:stateCode != '') then (vw.state_cd in (:stateCode)) (else 0) end) ;