我基本上想重用输入,以免用户再次输入相同的内容。
查询内容如下:
select * from table
where bb.bbn_from_dttm >= TO_DATE('&Bill_Date_ddmmyyyy','dd-mm-yyyy')
and bb.bbn_to_dttm <= LAST_DAY('&Bill_Date_ddmmyyyy');
我不希望用户输入两次,并且从第一个输入中获取值会给我所需的日期范围。
这是SQL Oracle。
有任何线索吗?
答案 0 :(得分:1)
请注意使用内联视图将输入字符串转换为日期(对于整个查询仅一次)-然后其余查询使用在此内联视图中创建的日期,而不是用户的输入。如果您需要查询在同一会话中运行时使用相同的输入,请将&
更改为&&
。(尽管在大多数情况下,这不是用户想要的)。
select bb.*
from my_table bb
join
( select TO_DATE('&Bill_Date_ddmmyyyy','dd-mm-yyyy') as bill_date
from dual
) d
on bb.bbn_from_dttm >= d.bill_date and bb.bbn_to_dttm <= LAST_DAY(d.bill_date);