select-ORACLE SQL查询错误ORA-00913

问题描述

ORACLE SQL查询错误ORA-00913

select * from a where a.order_id in () or a.order_id in () or a.id in () .........

or连接符大约有197个左右吧,查询开始报错,哪位大神求解!
图片说明

解决方案

ORACLE错误(ora查询索引)
SQL 错误: ORA-12910

解决方案二:

向数据库中传递的参数的个数和数据库中相应的字段的数量不一致,值过多,检查一下字段

解决方案三:

ORACLE已经报了值过多的错误了,就只能想办法把值减少了,看图片中,你所有需要查询的就是order-id这一个字段,我的想法是,新建一个表b,里面可以就一个列,所有的括号里面的值都在这里面(最好把这列设为主键,防止重复和加快查询速度),以后括号里这些id有变更的话就在这个表里面操作,你原来的查询语句就变成:
select * from a where exists(select * from b where a.order-id=b.id)
短短的一句话,b表里面的数据要快速删除的话,也可以直接truncate

时间: 2024-10-26 04:39:35

select-ORACLE SQL查询错误ORA-00913的相关文章

c# ora oracle sql 查询

问题描述 c# ora oracle sql 查询 SELECT * from V_DEPXIAOSGONG where CITYNAME like '%北京%' 在 navicat 里面查询有个4条数据 string sumData = "SELECT * from V_DEPXIAOSGONG where CITYNAME like '%北京%'"; OracleCommand cmd = new OracleCommand(); PrepareCommand(cmd, conne

过滤两个字段-关于oracle sql查询同一个表,根据不同字段过滤去重的问题

问题描述 关于oracle sql查询同一个表,根据不同字段过滤去重的问题 select j.xmbhid,j.xmmc,j.scjd,j.xmzt from jhxx_new j where j.xxdm='4111010001' and j.lrjh in (209,210,244) order by xmbhid,scjd,xmzt 重复记录中所处阶段三个状态(0,2,3),项目状态(xmzt)两个状态(0,1) 先要查看所处阶段最大值,并且项目状态是1,即第二个图片的显示效果,求大神们帮

注释-oracle sql查询语句优化

问题描述 oracle sql查询语句优化 各位大神,我想问下在生产PLSQL,将****内的注释以后,可以查询出结果(用时:16S秒),否则,SQL就一直处于执行状态,查询不出结果.在线等,求各位大神们解惑 select cs.P_VOICEDIAL_FLAG PVoicedialFlag cs.pri_card_nbr priCardNbr cs.total_bal totalBal cs.overdue_amount totalOdue cs.risk_score riskScore ci

select-oracle sql查询语句优化

问题描述 oracle sql查询语句优化 select moni.p_code,moni.department,moni.monitorserialno,moni.adminname,moni.buildingname from t_monitorroom moni where moni.p_code in (select roleauth.monitorroomid from t_monitorroom_role_authority roleauth left join t_monitorr

oracle常用经典SQL查询

oracle常用经典SQL查询 常用SQL查询:   1.查看表空间的名称及大小   select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;   2.查看表空间物理文件的名称及大小   select

oracle常用sql查询语句部分集合(图文)_oracle

Oracle查询语句 select * from scott.emp ; 1.--dense_rank()分析函数(查找每个部门工资最高前三名员工信息) select * from (select deptno,ename,sal,dense_rank() over(partition by deptno order by sal desc) a from scott.emp) where a<=3 order by deptno asc,sal desc ; 结果: --rank()分析函数(

《Oracle SQL疑难解析》——1.1 从表中查询数据

1.1 从表中查询数据 Oracle SQL疑难解析 1.1.1 要解决的问题 如何从一个表中查询特定行和列的数据. 1.1.2 解决方法 用包含WHERE子句的SELECT语句.下面的SELECT 语句可以从数据库表中查询符合条件的行的列值: select employee_id, first_name, last_name, hire_date, salary from hr.employees where department_id = 50 and salary < 7500; 上述SE

oracle sql语句疑问,关于嵌套查询语句的执行先后顺序

问题描述 oracle sql语句疑问,关于嵌套查询语句的执行先后顺序 1.select A.END from 2. tableA A,tableB B 3.where A.X=B.Y 4.and A.END = ( 5. select MAX(END) from tableA 6. where tableA.X = B.Y 7. ): 我想问一下.按理max只有一个最值,为何这样写会出来多个.另外第5,6,7行是子查询,不是很理解为什么可以里面调用父查询里面的B.能详细说一下这个sql 完整的

oracle数据库-oracle sql 动态查询问题----大神请进

问题描述 oracle sql 动态查询问题----大神请进 问题场景,有表1如下: 姓名 科目 王二 语文 王二 数学 张三 语文 得到如下检索结果: 姓名 科目1 科目2 王二 语文 数学 张三 语文 问题:若表1是动态的,再增加一条或多条记录,如:李四 英语 怎样才能得到: 姓名 科目1 科目2 科目3 王二 语文 数学 张三 语文 李四 ---- ---- 英语 可否通过查询语句实现?若不能,是否有其他手段实现? 解决方案 select name, WMSYS.WM_CONCAT(sub