sql - Oracle SQL 重用用户输入
问题描述
我基本上想重用一个输入来避免用户再次输入相同的东西..
查询如下所示:
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 甲骨文。
有什么线索吗?
解决方案
请注意使用内联视图将输入字符串转换为日期(整个查询只需一次) - 然后查询的其余部分使用在此内联视图中创建的日期,而不是用户的输入。更改&
为&&
是否需要查询在同一会话中运行时使用相同的输入(尽管在大多数情况下这不是用户想要的)。
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);
推荐阅读
- jquery - 用于输入日期的 jQuery 掩码函数
- wordpress - 联系表格 7 MailChimp 扩展程序无法正常工作
- c# - 我的触发器对撞机触发,但里面的 if 语句不起作用
- c++ - 在多个时间戳执行函数
- java - Java中的列表内列表
- listview - Flutter 上 Listview 的快照长度
- firebase - 比较firestore中的资源和请求资源
- vue.js - 显示消息取决于 v-on:click in vue
- c++ - How to pass a single row of a 2D vector as a function argument
- javascript - RxJS:限制速率限制的 API 调用