【发布时间】:2020-02-06 09:31:25
【问题描述】:
oracle视图和WITH子句有什么区别吗?我问这个是因为我使用 WITH 子句编写了一个 SQL。我在 WITH 子句中看到的 SQL 行为并没有给我一个一致的输出。
例如 WITH 子句中的 SQL 必须生成 20 条记录,并将这 20 条记录提供给其他 SQL。我观察到的趋势是某天 20 条记录,某天 18 或 17 甚至 14 条记录。在手动运行此 SQL 时,我得到 20 条记录。
with subject as (
select subject_id
from report_card
where card_id = 100
)
select *
from student stud,
subject s
where s.subject_id = stud.subject_id;
为了解决我的问题,我想到了在视图中编写 WITH 子句语句。
TIA
【问题讨论】:
-
查询结果与 CTE 或视图不会有任何不同(当然,除非出现错误)。您加入 CTE 的表格的内容可能会发生变化吗?
-
今日提示:始终使用现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。
标签: sql oracle view with-statement