Oracle查询当月数据,若不存在则查询上个月数据
时间: 2024-02-19 12:03:56 浏览: 57
oracle数据字典表查询
您好!针对您的问题,可以使用如下的SQL语句来实现:
```sql
SELECT *
FROM your_table
WHERE date_column >= TRUNC(SYSDATE, 'MONTH')
AND date_column < ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 1)
UNION ALL
SELECT *
FROM your_table
WHERE date_column >= ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), -1)
AND date_column < TRUNC(SYSDATE, 'MONTH')
AND NOT EXISTS (
SELECT 1
FROM your_table
WHERE date_column >= TRUNC(SYSDATE, 'MONTH')
AND date_column < ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 1)
)
```
以上SQL语句会先查询当月数据,如果数据不存在,则查询上个月的数据,同时要确保上个月的数据没有被包含在当月数据中。其中,`your_table`是您要查询的表,`date_column`是表示日期的列名。
阅读全文