回答

收藏

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

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

如何在不创建表和插入数据的情况下创建?SQL临时结果集?
" v( u! j& X/ R/ d% M+ f8 R例如:例如,我有一个列表,例如10个代码。我想把它放在查询中,然后查询数据库,看看临时列表中不存在哪些代码。3 K" R; A- l* y3 ]
若已在表中,则可执行以下操作:
6 z4 n& q3 ^: }& c; ^' H" ?SELECT  ITEM_CODEFROM  TEMP_ITEMSMINUSSELECT   ITEM_CODEFROM   M_ITEMS查询前是否不使用?PL / SQL和纯SQL创建临时行集的方法?请不要回答以下内容:& |5 g3 K6 }) B) }
SELECT 1 FROM DUALUNION ALLSELECT 2 FROM DUAL我有点想去哪里IN提供语句中的代码,并将其转换为行以供以后查询。
, M6 C" D+ E2 ^编辑:所以每个人都知道我的目标。基本上,我有时会得到一个产品代码列表。我需要找出列表中没有在我们的系统中设置哪些代码。我想快速把它放进去SQL为了查看哪些不在系统中(而不是导入数据等)。excel然后做一个公式,比如:
  ~+ D3 o& [* [="'"&A1&"',"这样,我就可以创建逗号分隔列表。
5 H/ N* V) U; ^% b. B                                                                  E* E# ^  D! j2 j5 Q
    解决方案:                                                               
& D  o  e. @$ q7 \1 q" n                                                                假如你用的是oracle 11g,则可以执行此操作5 m* L" w9 j( @$ Y; ^8 y! z
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);或者
9 E" ]& _: A& v) vwith 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);
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则