oracle - PLSQL 循环遍历日期并将其用作参数
问题描述
所以我试图找到一个正确的方法来使用下面查询中的每个日期作为另一个查询的参数
SELECT to_char(dates,'yyyy-mm-dd') dates
FROM (
SELECT TO_DATE('01-JAN-2019') + ROWNUM - 1 dates
FROM (
SELECT ROWNUM FROM (
SELECT 1 FROM DUAL
CONNECT BY LEVEL <= sysdate - (TO_DATE('01-JAN-2019') + 1 )
)
)
)
前任。select netcash from tb1 where tb1.cutoff_date = :dates (其中 :dates 的值来自子查询)
解决方案
目前尚不清楚您要在这里寻找什么,但在您的示例中可能是这样的:
SELECT NETCASH FROM TB1 WHERE to_char(tb1.CUTOFFDATE,'yyyy-mm-dd') IN (
SELECT to_char(dates,'yyyy-mm-dd') dates
FROM (
SELECT TO_DATE('01-JAN-2019') + ROWNUM - 1 dates
FROM (
SELECT ROWNUM FROM (
SELECT 1 FROM DUAL
CONNECT BY LEVEL <= sysdate - (TO_DATE('01-JAN-2019') + 1 )
)
)
);
尽管就个人而言,除非 CUTOFFDATE 是该格式的字符串,否则我只会删除两个 TO_CHAR,如果您需要午夜,您可以使用 TRUNC(date)。
你也可以这样做:
SELECT NETCASH
FROM TB1
INNER JOIN (
SELECT to_char(dates,'yyyy-mm-dd') dates
FROM (
SELECT TO_DATE('01-JAN-2019') + ROWNUM - 1 dates
FROM (
SELECT ROWNUM FROM (
SELECT 1 FROM DUAL
CONNECT BY LEVEL <= sysdate - (TO_DATE('01-JAN-2019') + 1 )
)
)
)) as DATES
ON dates.dates = to_char(tb1.CUTOFFDATE,'yyyy-mm-dd')
;
但是这两个查询会产生非常不同的结果,请使用符合您意图的查询。
推荐阅读
- php - 删除购物车上的 TAX 金额文本并结帐 Woocommerce
- selenium - 我如何获取属于祖父母的文本?
- html - 垂直滚动,第一个和最后一个孩子在屏幕上居中
- python - 正确索引以在 Pandas 中创建新数据框
- html - 如何旋转图像背景
- javascript - Next.js,使用随机属性而不触发“服务器/客户端不匹配”错误
- javascript - $(this) 在另一个函数 jQuery
- oracle-call-interface - 是否可以使用 ORDS 将远程 Oracle APEX 连接到 ATP?
- c++ - c++程序意外退出
- python - Heroku/Flask 部署失败,“找不到属性应用程序”或“找不到模块名称(flask_module)”,应该归咎于 proc 文件吗?