我正在尝试根据以下 PLSQL 查询确定的“日期”范围来选择行,该查询当前提供了我需要的结果 - 是脚本时一周中最后 10 周的“日期”对象正在运行。例如。在 5 月 22 日运行它会产生 5 月 15 日、5 月 8 日等等。
SELECT SYSDATE-(level*7) as DateRange
FROM DUAL
CONNECT BY LEVEL <=10
这会生成日期列表。然后我尝试将其与父选择语句结合起来,以获取上面输出的日期在“DAY”(Oracle 类型的 DATE)列中的行。
SELECT * FROM NEM_RM16
WHERE NEM_RM16.DAY IN (
SELECT SYSDATE-(level*7) as DateRange
FROM DUAL
CONNECT BY LEVEL <=10);
尽管知道有些行具有上述生成的日期,但它没有给出任何结果。
我已经读过,在使用“IN”运算符时,值必须用单引号引起来,但我不确定如何使用上面的查询来执行此操作。
我是通过使用 IN 运算符以正确的方式解决这个问题,还是应该执行不同类型的嵌套查询?