Oracle 中的决策语句

Decision Making Statements in Oracle

我有一个条件,显示的记录取决于用户提供的值。

select calc_lvl1,   calc_lvl2,  calc_lvl3
from my_table
where comment=:user_value;

评论栏中的可能值为 'NEW''ACCEPTED''REJECTED'。并且将来此列中也可能有新值,并且此查询将来也应该有效,而不管评论列中存在的不同值的数量如何。

我的要求是,如果用户不提供任何值,则应显示所有 'NEW' 记录,如果用户输入值 'Y',则应显示除 'NEW' 以外的所有其他记录被显示。

有什么办法可以实现吗?

select calc_lvl1, calc_lvl2, calc_lvl3
from my_table
where comment = user_value
  or (user_value is null and comment = 'NEW')
  or (user_value = 'Y' and comment <> 'NEW')