sql – ORA-00907缺少右括号问题 – 通过内部插入查询选择顺序
发布时间:2021-02-01 17:27:46 所属栏目:MsSql教程 来源:网络整理
导读:我试图插入一个表,它为一列使用一个select语句.以下是我的查询的说明. INSERT INTO MY_TBL (MY_COL1,MY_COL2)VALUES ((SELECT DATA FROM FIR_TABL WHERE ID = 1 AND ROWNUM = 1 ORDER BY CREATED_ON DESC),1 ); 它抛出ORA-00907缺少右括号.如果我从中删除ORDE
|
我试图插入一个表,它为一列使用一个select语句.以下是我的查询的说明. INSERT INTO MY_TBL (MY_COL1,MY_COL2) VALUES ( (SELECT DATA FROM FIR_TABL WHERE ID = 1 AND ROWNUM = 1 ORDER BY CREATED_ON DESC),1 ); 它抛出ORA-00907缺少右括号.如果我从中删除ORDER BY,它会按预期工作.但我需要订购它.请澄清. 提前致谢. 解决方法当前的答案都忽略了在同一查询中使用order by和rownum本身就很危险的事实.绝对不能保证您将获得所需的数据.如果要从有序查询中获取第一行,则必须使用子查询:insert into my_tbl ( col1,col2 )
select data,'more data'
from ( select data
from fir_tabl
where id = 1
order by created_on desc )
where rownum = 1
;
您也可以使用像 insert into my_tbl ( col1,'more data'
from ( select data,rank() over ( order by created_on desc ) as rnk
from fir_tabl
where id = 1)
where rnk = 1
; (编辑:天瑞地安资讯网_保定站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql – 如何识别存储在Oracle DATE列中的无效(损坏)值
- sql-server – 我可以通过更新分区键在分区之间移动行吗?
- 数据库设计 – 具有快速(lt;1s)读取查询性能的大型(gt; 22万
- sql – 使用输出在merge语句中设置变量
- sql-server – Windows XP连接限制是否适用于Sql Server连接
- sql-server – SSRS报告“无法加载客户端打印控件”
- 后缀:错误:打开数据库/etc/postfix/generic.db:没有这样
- SQL Server 2008:将列值转换为行
- SQL中NULL是何意思?如何使用?
- sql-server – SSMS工具包替代
站长推荐
热点阅读

