回答

收藏

Oracle-使用查询创建临时结果集

技术问答 技术问答 109 人阅读 | 0 人回复 | 2023-09-14

如何在不创建表和插入数据的情况下创建?SQL临时结果集?& O$ }8 m& D* G/ w1 _
例如:例如,我有一个列表,例如10个代码。我想把它放在查询中,然后查询数据库,看看临时列表中不存在哪些代码。5 `2 y5 H2 j4 X" i2 C1 p0 c
若已在表中,则可执行以下操作:6 n( l. u$ F  ?: f
SELECT  ITEM_CODEFROM  TEMP_ITEMSMINUSSELECT   ITEM_CODEFROM   M_ITEMS查询前是否不使用?PL / SQL和纯SQL创建临时行集的方法?请不要回答以下内容:
& X4 j% ~' N5 @( Z1 @SELECT 1 FROM DUALUNION ALLSELECT 2 FROM DUAL我有点想去哪里IN提供语句中的代码,并将其转换为行以供以后查询。
# F% ?- x. Z4 {- H' z+ p% q$ v编辑:所以每个人都知道我的目标。基本上,我有时会得到一个产品代码列表。我需要找出列表中没有在我们的系统中设置哪些代码。我想快速把它放进去SQL为了查看哪些不在系统中(而不是导入数据等)。excel然后做一个公式,比如:: v% h* L' F' E$ P# Q5 x
="'"&A1&"',"这样,我就可以创建逗号分隔列表。  b& k" G" I- }+ ~3 q% [5 O' c/ A% X
                                                                9 [& {  T' ~$ K7 Q5 w
    解决方案:                                                                $ F# I! }0 T( V: p5 R
                                                                假如你用的是oracle 11g,则可以执行此操作
3 _6 O9 {$ S" p1 I& ^with t as ( select (column_value).getnumberval() Codes from xmltable(1、2、3、4、5)SELECT * FROM tWHERE NOT EXISTS (SELECT 1 FROM M_ITEMS M WHERE codes = M.ITEM_CODE);或者$ }) Q. a' j# t& s6 r
with t as ( select (column_value).getstringval() Codes from xmltable('"A","B","C"'))SELECT * FROM tWHERE NOT EXISTS (SELECT 1 FROM M_ITEMS M WHERE codes = M.ITEM_CODE);
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则