SQL In Clause with 20000 values(具有 20000 个值的 SQL 子句)
问题描述
我有一个包含 20000 个 ID 的 xls
I have a xls with 20000 IDs
我需要在 Col1 中提取具有这些 ID 的表的行
I need to extract the rows of a table that have these IDs in Col1
在 Oracle SQL 中是否有一种聪明的方法可以做到这一点?
Is there a clever way to do this in Oracle SQL ?
我对该数据库只有读权限.
I only have a read access to this db.
我想对 20000 个 ID 进行切片,以便将前 1000 个放在变量 p_list1 中,将下一个 1000 个放在变量 p_list2 中,等等,然后使用 IN 子句和联合来获得整个结果
I thought to slice the 20000 IDs, in order to put the first 1000 in a variable p_list1 , the next 1000 in a variable p_list2, ect and use a IN clause and union to get the whole result
但我不习惯在查询中使用参数.
But I'm not used to use paramters in my query.
你能看一下吗?
预先感谢您的帮助
DECLARE
p_list1 VARCHAR2(10) := '''id1''','''id2''','''id3''',..ect
BEGIN
execute immediate 'select * from table1 where Col1 in ('|| p_list ||')' ;
END;
推荐答案
如果可以创建临时表,可以这样进行:
If you can create a temporary table, you can proceed in this way:
- 创建临时表
- 使用 EXISTS 子句重新编写查询,如下所示:
SELECT *
FROM table1
WHERE EXISTS(select 1 from temp_table tt WHERE tt.id = table1.Col1)
这篇关于具有 20000 个值的 SQL 子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:具有 20000 个值的 SQL 子句


- SQL 临时表问题 2022-01-01
- 导入具有可变标题的 Excel 文件 2021-01-01
- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01
- 更改自动增量起始编号? 2021-01-01
- 在SQL中,如何为每个组选择前2行 2021-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01