向oracle里select top 1 * from报“未找到预期FROM关键字”

[复制链接]
查看11 | 回复9 | 2007-3-20 21:21:40 | 显示全部楼层 |阅读模式
set rs=cn.execute("select TOP 1 * from wzbj order by ID desc&quot

cn.execute("insert into upfile values ('"&file.filename&"','"&date()&"','"&rs(2)&"')&quot


在SQL SERVER里面是好的,从ORACLE里查就报第一行“错误ora-00923 未找到预期的FROM关键字”,难道
是ORACLE不能用TOP?
是用VBSCRIPT写的ASP文件,呵呵。
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
top是sql server的语法
oracle不支持
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
TOP 1在ORACLE中不支持.如果非要用用ROWNUM
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
那我的语句应该怎么写啊,能否帮我改一下?谢谢~~
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
select * from ...where rownum = 1;
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
使用分析函数也可以达到目的
select *
from (select row_number() over(order by ID desc) seq, t.*

from wzbjt)
where seq = 1
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
最初由 kso 发布
[B]select * from ...where rownum = 1; [/B]

sqlserver中top 后面可以跟大于1的,那么就不能这么处理了。
select top 10 * from your_table;
可以用下面的
select * from (select rownum rn,a.* from your_table a) where rn <=10;
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
哦~~~谢谢, 不过楼上的最后一行, RN和A分别代表什么呀?
我后来set rs=cn.excute (select * from table order by ID desc),之后, 只用rs一次,它就会只对第一行数据进行操作了, 不过好象有点讨巧, 呵呵
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
rownum rn
your_table a
回复

使用道具 举报

千问 | 2007-3-20 21:21:40 | 显示全部楼层
楼主一点oracle资料都没有看就开始oracle开发,许多程序员的通病!不过你把oracle想象的太简单了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行