`

sql in 语句最大上限1000

阅读更多
   当我们用sql in语句进行查询时候。Oracle默认支持in中的数量为1000.
这也是为了sql的性能处理,因为in 的性能本来就不很好。所以遇到这种情况最好是通过关联查询进行处理。如果关联查询不能实现你的逻辑,就抛弃性能吧。拼接sql吧。可以通过 or in 进行实现(不推荐)
  其中进行拼接方法:
	private static String getOracleSQLIn(List<?> ids, int count, String field) {
	    count = Math.min(count, 1000);
	    int len = ids.size();
	    int size = len % count;
	    if (size == 0) {
	        size = len / count;
	    } else {
	        size = (len / count) + 1;
	    }
	    StringBuilder builder = new StringBuilder();
	    for (int i = 0; i < size; i++) {
	        int fromIndex = i * count;
	        int toIndex = Math.min(fromIndex + count, len);
	        String productId = StringUtils.defaultIfEmpty(StringUtils.join(ids.subList(fromIndex, toIndex), "','"), "");
	        if (i != 0) {
	            builder.append(" or ");
	        }
	        builder.append(field).append(" in ('").append(productId).append("')");
	    }
	    return StringUtils.defaultIfEmpty(builder.toString(), field + " in ('')");
	}
分享到:
评论

相关推荐

    wow N8 简单sql语句

    下面将对这些SQL语句进行详细解析: ### SQL语句解析 #### 1. 修改物品价格与堆叠数量 - **调整物品购买价格**:`UPDATE`语句用于更新`item_template`表中的所有物品,将其购买价格乘以10倍。这可能是在调整游戏...

    SQL 语句 删除最老记录和条件删除记录的三方法

    在数据库管理中,SQL语句是执行数据操作的利器,其中删除操作尤为关键,它能够帮助我们维护数据库的健康状态,确保数据的准确性和效率。本文将深入探讨如何使用SQL语句来删除最老的记录以及如何根据特定条件进行记录...

    SQL设置SQL Server最大连接数及查询语句

    要查询当前的最大连接数配置,可以使用以下SQL语句: ```sql select value from master.dbo.sysconfigures where [config]=103 ``` 这里的`config=103`对应于`user connections`的配置ID。 监控SQL Server的连接...

    sql查询语句汇总[文].pdf

    SQL查询语句汇总 SQL查询语句是数据库管理系统中的一种语言,用于存储、管理和检索数据。本文档将对SQL查询语句进行总结,涵盖了基本查询、数据插入、数据更新和数据删除等方面的知识点。 基本查询 SELECT语句是...

    南大通用GBase8s SQL常用SQL语句(九).docx

    【南大通用GBase8s SQL常用SQL语句(九)——Rolling Window子句】 在GBase8s数据库管理系统中,Rolling Window子句是一个用于管理表的滚动窗口策略的高级特性,主要应用于分布式存储策略和清除策略的调整。Rolling...

    Sql Server 数据库超时问题的解决方法

    Cmd.CommandTimeout = 30000 '这个值你可以根据你所需要设置,最大值应该就是整型的上限吧 ``` 或 ``` sqlCmd = new SqlCommand(); sqlCmd.Connection = sqlConn; sqlCmd.CommandType = CommandType....

    在sql语句中分页

    在SQL语句中实现分页查询是数据库操作中常见的需求之一,尤其是在处理大量数据时,分页能够有效地提升用户体验和系统性能。本文将基于提供的标题、描述和部分代码示例,详细阐述如何在SQL中进行分页操作,以及其背后...

    nimsql2000_迷你SQL_sql2000精简版_精简版SQL2000_精简型sql2000_

    4. **数据查询与分析**:内置Transact-SQL语言,支持复杂的SQL查询语句,进行数据检索和分析。 5. **备份与恢复**:提供数据备份和恢复功能,确保数据安全,防止数据丢失。 6. **简单报表服务**:尽管简化了报表...

    MySQL日志系统,一条SQL跟新语句是如何执行的,高清

    2. 分析器:连接成功后,分析器会对用户提交的SQL语句进行词法和语法分析,确保SQL语句符合语法规则。 3. 优化器:优化器决定具体的执行计划,比如确定使用哪个索引,以及如何高效地执行查询和更新操作。 4. 执行...

    南大通用GBase8s SQL常用SQL语句(八).docx

    【南大通用GBase8s SQL常用SQL语句(八)——MODIFY子句】 在南大通用的GBase8s数据库管理系统中,MODIFY子句是一个强大的工具,用于修改已有表或索引的分片配置。这个子句允许用户进行一系列高级操作,包括调整分...

    ORACLE经典常用语句总结

    在IT领域,尤其是在数据库管理与开发中,Oracle作为一款广泛使用的数据库管理系统,其经典常用的SQL语句对于数据库管理员(DBA)以及开发人员而言至关重要。本文将深入解析Oracle中的关键SQL语句,涵盖表约束、索引...

    SQL Server数据库占用过多内存的解决方法

    - 如果服务器专用于SQL Server且没有其他应用程序运行,通常建议不设置内存上限,让SQL Server根据需求自由使用内存资源。 #### 查询优化 1. **查询类型与内存消耗**: - `Hash Join`操作通常消耗较大的内存资源...

    系统内存不足解决方案

    在使用Windows操作系统时,有时会遇到“内存不足”的问题,这会影响我们运行程序或执行任务。以下是六个解决内存不足问题的策略,可以帮助你摆脱困境。 首先,剪贴板占用过多内存是一个常见原因。...

    SqlServer基础知识总结.pdf

    例如,创建一个名为Xoa的数据库,数据文件初始大小为5MB,增长速度为15%,无最大上限;日志文件初始大小为3MB,增长速度为1MB,最大上限为100MB。 createdatabasexoa onprimary ( name='Xoa_Data', fileName='e:\...

    数据库耗时sql追踪

    在数据库管理与优化过程中,经常需要对执行效率低下的SQL语句进行追踪与分析,以便找出性能瓶颈并加以改进。本文将围绕“数据库耗时SQL追踪”的主题展开讨论,通过对给定的SQL查询示例进行解析,介绍如何有效地追踪...

    SQL Server 查询两个日期之间的所有月份

    代码的核心部分在于创建一个动态SQL语句,利用`master.dbo.spt_values`系统表中的数字列生成日期范围。`spt_values`表包含一系列连续的整数值,可以用来模拟一系列的月份。在这里,我们筛选出类型为'p'的行,因为...

    如何解决SQL Server日志满问题

    * 第 6 步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复。 简单的方法 简单的方法主要包括三个步骤: 1. 设置故障还原模型:设置故障还原模型为简单。 右建数据库属性窗口--故障还原模型--...

    sql top参数

    通过合理运用ROWCOUNT,不仅可以提升存储过程的效率和可维护性,还能避免使用EXEC来执行构造的SQL语句,从而简化调试过程。尽管获取当前ROWCOUNT值的功能有所欠缺,但这并不影响其作为处理TOP N查询的有效工具的地位...

    PL/SQL 练习

    PL/SQL允许在`BEGIN`和`END`块中嵌入SQL语句,用于执行数据查询或更新操作。例如,使用`SELECT`语句查询`emp`表中`empno`为指定值的员工姓名,将结果存储到变量中,然后通过`DBMS_OUTPUT.PUT_LINE`函数输出结果。...

Global site tag (gtag.js) - Google Analytics