问题描述
大家好,
我是最近从PL/SQL转换为SQL Developer & Oracle。因此,我大量使用 # temptables,并且非常不鼓励编写尝试在一个查询中执行所有操作的 “超级sql” 脚本。
现在,我了解到Oracle的情况恰恰相反。我对此没有任何问题,我只是对为什么不使用temptables感到困惑,因为它们对于在多步骤,复杂查询中开发逻辑非常有益。将所有内容干扰到单个查询中似乎很奇怪,并且会使编写初始脚本变得更加困难。我在下面提供了一个小例子。
所有输入表示赞赏。
-约翰
我是最近从PL/SQL转换为SQL Developer & Oracle。因此,我大量使用 # temptables,并且非常不鼓励编写尝试在一个查询中执行所有操作的 “超级sql” 脚本。
现在,我了解到Oracle的情况恰恰相反。我对此没有任何问题,我只是对为什么不使用temptables感到困惑,因为它们对于在多步骤,复杂查询中开发逻辑非常有益。将所有内容干扰到单个查询中似乎很奇怪,并且会使编写初始脚本变得更加困难。我在下面提供了一个小例子。
select patient, patientAGE, DOB into #tmp1 from Patients select patient, diabetesDX, DxDate into #tmp2 from diagnoses select patient, A1Clvl, MAX(dateoflab) as DOL into #tmp3 from labs where A1C >= 9 GROUP BY patient, A1Clvl select t1.*, t2.A1Clvl, t2.DOL, t3.A1Clvl, DOL from #tmp1 t1 LEFT JOIN #tmp2 t2 ON t2.patient = t1.patient LEFT JOIN #tmp3 t3 ON t3.patient = t3.patient复制
所有输入表示赞赏。
-约翰
专家解答
你有几个选择。我们在18c中有私有临时表,可以以与 # temp表相同的方式使用-您只需要定义它们即可。这样做的成本基本上是零,因为他们完全生活在你的会议。这里非常简单的演示
但是另一种选择是使用的子句,它使您可以保持类似于临时表的流,但仍然有一个查询。你上面的例子是:
但是另一种选择是使用的子句,它使您可以保持类似于临时表的流,但仍然有一个查询。你上面的例子是:
with tmp1 as ( select patient, patientAGE, DOB from Patients), tmp2 as ( select patient, diabetesDX, DxDate from diagnoses), tmp3 as ( select patient, A1Clvl, MAX(dateoflab) as DOL from labs where A1C >= 9 GROUP BY patient, A1Clvl ) select t1.*, t2.A1Clvl, t2.DOL, t3.A1Clvl, DOL from tmp1 t1 LEFT JOIN tmp2 t2 ON t2.patient = t1.patient LEFT JOIN tmp3 t3 ON t3.patient = t3.patient复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
606次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
605次阅读
2025-04-15 17:24:06
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
499次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
483次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
465次阅读
2025-04-22 00:20:37
Oracle 19c RAC更换IP实战,运维必看!
szrsu
441次阅读
2025-04-08 23:57:08
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
438次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
432次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
373次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
362次阅读
2025-04-15 14:48:05