当前位置: 代码迷 >> 综合 >> SQL使用IN超过1000个条件的处理
  详细解决方案

SQL使用IN超过1000个条件的处理

热度:23   发布时间:2024-02-12 14:47:16.0

> ORA-01795: maximum number of expressions in a list is 1000

SELECT* FROM tableName WHERE ID IN('1','2','...','1001');改成下面的方式:
SELECT* FROM tableName WHERE (0,ID) IN((0,'1'),(0,'2'),(0,'...'),(0,'10001'));

 

	String str = "1,2,...,1001";StringBuffer sb = new StringBuffer();if (StringUtils.isNotEmpty(str)) {sb.append("(");String[] split = str.split(",");int length = split.length;for (int i = 0; i < length; i++) {sb.append("(0,'");sb.append(split[i]);sb.append("'),");}sb.append(")");sb.deleteCharAt(sb.toString().length() - 2);}System.out.println(sb.toString());// ((0,'1'),(0,'2'),(0,'...'),(0,'1001'))