回答

收藏

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

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

如何在不创建表和插入数据的情况下创建?SQL临时结果集?6 `  A+ d4 Z8 F# V
例如:例如,我有一个列表,例如10个代码。我想把它放在查询中,然后查询数据库,看看临时列表中不存在哪些代码。+ E2 ~+ h% U; H* z9 o5 k+ @' j6 @, q
若已在表中,则可执行以下操作:
  S2 K1 X' g* ]2 I- E$ N5 ~; g4 x) z+ e. RSELECT  ITEM_CODEFROM  TEMP_ITEMSMINUSSELECT   ITEM_CODEFROM   M_ITEMS查询前是否不使用?PL / SQL和纯SQL创建临时行集的方法?请不要回答以下内容:
1 M) A" ^. U, t( PSELECT 1 FROM DUALUNION ALLSELECT 2 FROM DUAL我有点想去哪里IN提供语句中的代码,并将其转换为行以供以后查询。
. u  x! o7 I  P编辑:所以每个人都知道我的目标。基本上,我有时会得到一个产品代码列表。我需要找出列表中没有在我们的系统中设置哪些代码。我想快速把它放进去SQL为了查看哪些不在系统中(而不是导入数据等)。excel然后做一个公式,比如:
2 ]! e6 ~( a0 b7 ]& P$ l="'"&A1&"',"这样,我就可以创建逗号分隔列表。7 c$ {6 P# @% y, X  }: `. q) U: L
                                                                % n8 y3 V0 e0 v! P3 _
    解决方案:                                                               
9 \; |' G% {: w# p                                                                假如你用的是oracle 11g,则可以执行此操作) @. _8 m# {5 D
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);或者. r, L+ F6 b& a9 _
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);
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则