Oracle 查询以返回表不包含的寄存器';我没有
我有一个268注册表列表,我想看看其中哪些不在表中。我没有使用它,但它返回表中的其他寄存器,而不是我必须看到的寄存器 如果我有一张ID为1,2,3,4的桌子 我有一个ID为0,1,4,5,99的列表(用于构建where子句)Oracle 查询以返回表不包含的寄存器';我没有,oracle,plsql,Oracle,Plsql,我有一个268注册表列表,我想看看其中哪些不在表中。我没有使用它,但它返回表中的其他寄存器,而不是我必须看到的寄存器 如果我有一张ID为1,2,3,4的桌子 我有一个ID为0,1,4,5,99的列表(用于构建where子句) 我需要构建一个返回数字0、5和99的PL/SQL查询 我尝试了以下方法: Select * from myTable where ids not in ('0,1,4,5,99') 但这将返回表的所有寄存器,而不仅仅是我想要的寄存器。我知道我需要将此列表作为参考来返回它,
我需要构建一个返回数字0、5和99的PL/SQL查询 我尝试了以下方法:
Select * from myTable where ids not in ('0,1,4,5,99')
但这将返回表的所有寄存器,而不仅仅是我想要的寄存器。我知道我需要将此列表作为参考来返回它,但我不知道如何操作。这将适用于
Oracle 11g
。使用的想法是从博客文章中借用的
WITH numbers AS
(
SELECT '0, 1, 4, 5, 99' numberstring FROM dual
),
registry AS
(
SELECT (column_value).getnumberval() register
FROM numbers, xmltable(numberstring)
)
SELECT r.register
FROM registry r
LEFT JOIN Table1 t ON r.register = t.id
WHERE t.id IS NULL;
见工作演示
字符串的解决方案:
WITH strings AS
(
SELECT
'"LOOKUP - 0971 - 2135",
"LOOKUP - 0001 - 2424"' numberstring FROM dual
),
registry AS
(
SELECT (column_value).getStringVal() register
FROM strings, xmltable(numberstring)
)
SELECT r.register
FROM registry r
LEFT JOIN X_LANE t ON r.register = t.x_lane_gid
WHERE t.x_lane_gid IS NULL;
字符串字符串显示到目前为止您得到的任何结果。“我需要构建一个返回数字0、5和99的PL/SQL查询。”-选择0、5、99;科蒙·丹,我们是一个相互支持的开发人员社区,不是一个免费的“为我编写脚本”服务。@PM77-1我已经更新了主要问题。。很抱歉我在SQL上太笨了,哈哈。我知道我需要在引用中添加另一个select,但我真的不知道如何执行it@Twelfth你是对的,但我真的不明白我提出的代码是如何帮助别人做这件事的。不管怎样,我已经用smth编辑了主要问题,我已经尝试过了,因为你说
PL/SQL
,我假设它是Oracle
,对吧?我已经做了一些更改以满足我的需要,但我遇到了一些问题。你能帮助我吗?你就快到了。只需要在单个字符串周围使用“
。