【问题标题】:How to return result of two SQL queries in one cursor in PL/SQL?如何在 PL/SQL 的一个游标中返回两个 SQL 查询的结果?
【发布时间】:2019-08-29 06:12:50
【问题描述】:

我有一列 A 显示与输入 Date SYSDATE 对应的值。我想将该列分为两部分,一部分显示与SYSDATE 对应的数据,另一部分显示与SYSDATE-1 对应的数据,即前一天。

现在的问题是两个部分的输出列是相同的,它只是查询处理的变化,其中一个部分接受输入 Date SYSDATE 而其他部分接受输入 SYSDATE-1

我被困在这个要求的实现上。

Select A, B,C from Table -- Generalized query ,现在 A 列必须是 分成两列 A1 , A2 , 问题是如何显示 A1,A2 。

我不知道如何进行。

【问题讨论】:

  • 嘿 Radha,您能展示一下您的尝试吗?代码?

标签: sql plsql oracle-sqldeveloper


【解决方案1】:

您可以在这里尝试自我加入:

SELECT
    t1.value,
    t2.value,
    t1.dt,
    t2.dt
FROM yourTable t1
INNER JOIN yourTable t2
    ON t2.dt = t1.dt - 1
WHERE
    t1.dt >= TRUNC(SYSDATE);

这会将今天的记录与前一天同一时间的相应记录配对。

【讨论】:

  • 能否解释一下最后一个条件:t1.dt >= TRUNC(SYSDATE)
  • 当然,这只是说dt 必须在当前日期的午夜 或之后发生。因此,我的结果集将只包含第一列从今天开始的记录(第二列是同一时间点,一天前)。
猜你喜欢
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
相关资源
最近更新 更多