[英]SQL Query from row of Data
我有 10 年的数据行,格式为“BW-YYYYMMDD-0001”(0001 每天重置并且是连续的,每天最多 1000 个)
例如,数据库将被称为“Order_Det”
命令 | 订单详细信息 | 信息 |
---|---|---|
陆 | BW-20200501-0002 | 订单完成 |
我过去只有 3 年的数据,但现在所有 10 年的数据似乎都在通过。
我正在努力思考如何执行 SQL 查询,我可以在其中获取过去 36 个月数据库表中的行数,您知道如何在不删除 BW 的情况下执行此操作 - 也不是最后一个4个连续数字?
假设您有一个列id
,其值与您显示的一样,并且您有一个索引,因此您想利用它。 (优化器是否会选择使用索引是另一个问题——它可能不会,因为无论如何您要检索大约 30% 的数据。)
你可以这样做:
select .....
.....
where id >= 'BY-' || to_char(add_months(sysdate, -36), 'YYYYMMDD')
.....
where
条件右侧的字符串类似于BY-20180105
(如果查询在 2021 年 1 月 5 日运行)。 add_months
将 -36 个月(即 -3 年)添加到“今天”。
编辑:当然,我指的是order_details
(您刚刚添加)而不是id
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.