gpt4 book ai didi

sql - Oracle - 创建一个临时结果集以在查询中使用

转载 作者:行者123 更新时间:2023-12-03 14:34:52 24 4
gpt4 key购买 nike

如何在不创建表和插入数据的情况下创建用于 SQL 的临时结果集?

示例:我有一个列表,例如 10 个代码。我想把这个放到一个查询中,然后查询数据库,看看这个临时列表中哪些代码不存在于一个表中。

如果它已经在一张 table 上,我可以做类似的事情:

SELECT
ITEM_CODE
FROM
TEMP_ITEMS
MINUS
SELECT
ITEM_CODE
FROM
M_ITEMS

他们是一种不使用 PL/SQL 和纯 SQL 在查询之前创建临时行集的方法吗?
请不要回答如下:
SELECT 1 FROM DUAL
UNION ALL
SELECT 2 FROM DUAL

我正在考虑可以在 IN 语句中提供我的代码的东西,并将其转换为行以供以后的查询中使用。

编辑:所以每个人都知道我在这里的目标,基本上我有时会得到一个产品代码列表,我需要找到列表中的哪些代码没有在我们的系统中设置。我想要一种快速的方法将其放入 SQL 语句中,以便我可以查看哪些不在系统中(而不是导入数据等)。我通常把这些放到excel中,然后做一个公式,比如:
="'"&A1&"',"

这样我就可以创建逗号分隔的列表。

最佳答案

如果您使用的是 oracle 11g,您可以这样做

with t as 
(
select (column_value).getnumberval() Codes from xmltable('1,2,3,4,5')
)
SELECT * FROM t
WHERE NOT EXISTS (SELECT 1 FROM M_ITEMS M WHERE codes = M.ITEM_CODE);

或者
with t as 
(
select (column_value).getstringval() Codes from xmltable('"A","B","C"')
)
SELECT * FROM t
WHERE NOT EXISTS (SELECT 1 FROM M_ITEMS M WHERE codes = M.ITEM_CODE);

关于sql - Oracle - 创建一个临时结果集以在查询中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12169842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com