Oracle中的多个条件,其中一个条件:PAR

gjmwrych  于 2023-02-07  发布在  Oracle
关注(0)|答案(2)|浏览(151)

我有一个更复杂的查询,但我会给一个简单的例子。在SSRS相同的输入,但需要不同的输出:

select * from myTable where
case
when :PAR1 = 'hour' then myTable.hour = :PAR1
when :PAR1 = 'Mounth' then myTable.Mounth = :PAR1
end

怎么做呢?
我在试着

case length(:PAR1)
when 18 then hour: = PAR1
..

永远是个错误。

pbossiut

pbossiut1#

这里不需要CASE表达式:

SELECT *
FROM myTable
WHERE (:PAR1 = 'hour' AND hour = :PAR1) OR
      (:PAR1 = 'Mounth' AND Mounth = :PAR1);
xqk2d5yq

xqk2d5yq2#

您发布的代码对我来说没有意义;您确定:PAR1 * 在任何地方 * 都使用吗?我希望使用类似的代码

select *
from mytable
where (:PAR1 = 'hour'   and hour   = :PAR2) 
   or (:PAR1 = 'Mounth' and mounth = :PAR2)
                                    -------
                        maybe not :PAR2, but 
                        certainly not :PAR1

还有,当你在谈论“小时”的时候,“月”是什么?那不是应该是“月”吗?

相关问题