oracle 除了选择中的函数外,是否还有其他方法来检查特定值?

o2rvlv0m  于 2023-06-05  发布在  Oracle
关注(0)|答案(1)|浏览(223)
SELECT *
FROM DOCUMENTS
WHERE STATUS IN (1, 2, 3);

我需要一些方法来跟踪代码中检查这3个状态的位置。一种选择是通过函数检查它们。然后,如果我需要在这些相同的查询中添加另一个状态,我可以在函数中添加它。但这会使查询变慢。有没有其他的方法可以做到这一点?
我知道SQL宏是从19.7开始的,但我们只有19.0

56lgkhnf

56lgkhnf1#

将它们放在单独的表中:

create table status (id_status) as
  select 1 from dual union all
  select 2 from dual union all
  select 3 from dual;

alter table status add constraint pk_status primary key (id_status);

将当前查询修改为

SELECT *
FROM DOCUMENTS
WHERE STATUS IN (select status from status);

一旦出现新状态,只需

insert into status (id_status) values (4);

并且所有查询-引用状态-将仍然保持工作并且不必修改。

相关问题