具有 20000 个值的 SQL 子句

SQL In Clause with 20000 values(具有 20000 个值的 SQL 子句)
本文介绍了具有 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:

  1. 创建临时表
  2. 使用 EXISTS 子句重新编写查询,如下所示:

 SELECT * 
 FROM table1 
 WHERE EXISTS(select 1 from temp_table tt WHERE tt.id = table1.Col1)

这篇关于具有 20000 个值的 SQL 子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Union in SQL while creating XML file(创建 XML 文件时在 SQL 中联合)
strange behavior of SQL Server when sum nodes#39;s values in XML(对 XML 中的节点值求和时 SQL Server 的奇怪行为)
How to update a SQL table column with XML data(如何使用 XML 数据更新 SQL 表列)
How To Save XML Query Results to a File(如何将 XML 查询结果保存到文件)
Extracting XML sub-tags from a clob in Oracle via SQL(通过 SQL 从 Oracle 中的 clob 中提取 XML 子标签)
installed Xampp on Windows 7 32-bit. Errors when starting(在 Windows 7 32 位上安装 Xampp.启动时的错误)