繁体   English   中英

SQL 从数据行查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM