我有一个SQL查询,该查询经过硬编码以查看今天之前的结果。例如
select *
from test
where date between (sysdate-1) and (sysdate)
我想用像ONE_DAY这样的变量替换(sysdate-1)中的1,并将该变量设置为等于1。
ONE_DAY = 1
select *
from test
where date between (sysdate-ONE_DAY) and (sysdate)
我正在使用Oracle SQL Developer,这只是为了防止在where子句中使用硬编码值。
答案 0 :(得分:3)
您可以使用Bind变量
VARIABLE one_day NUMBER
EXEC :one_day := 1
select * from test where some_date
between SYSDATE - :one_day and sysdate
或替换变量
DEFINE one_day = 1
select * from test where some_date
between SYSDATE - &one_day and sysdate
在SQL开发人员中,使用“以脚本运行(F5)”选项
更多信息,请访问: