如何为Oracle创建动态WHERE语句

时间:2019-05-01 16:01:40

标签: sql oracle

我需要能够根据传递的变量动态更改WHERE部分。例如

SELECT item,description
FROM TABLE WHERE department = :department

我想做的是,如果传递的变量是“ NY”,那么我想查询CT,NJ和NY中的状态,但是如果变量是“ CA”,则只需查询CA。 我可以在WHERE部分中使用CASE WHEN语句吗?

我不能使用SP或游标来查询。

3 个答案:

答案 0 :(得分:2)

那是

waitUntil

答案 1 :(得分:0)

我相信您想要的逻辑是:

[https://jsfiddle.net/jk1984/vyh73dLc/3/][1]

这应该适用于任何状态,而不仅仅是列出的四个状态。

答案 2 :(得分:0)

您也可以尝试

INSTR(DECODE(:部门,'CA','CA','NY','CT,NJ,NY'),部门)> 0