???select top 2 * from 表1,这句sql语句为什么在oracle里执行不了啊???请近来看看!! ( 积分: 50 )

  • 主题发起人 wanglong3
  • 开始时间
W

wanglong3

Unregistered / Unconfirmed
GUEST, unregistred user!
sql:='select top 2 * from 企业诚信';
adoquery1.close;
adoquery1.sql.clear;
adoquery1.SQL.add(sql);
adoquery1.Open;
上面这句话执行不了,但在爱sqlserver2000可以执行,但
sql:='select * from 企业诚信';在oracle里却可以执行,为什么啊??
 
sql:='select top 2 * from 企业诚信';
adoquery1.close;
adoquery1.sql.clear;
adoquery1.SQL.add(sql);
adoquery1.Open;
上面这句话执行不了,但在爱sqlserver2000可以执行,但
sql:='select * from 企业诚信';在oracle里却可以执行,为什么啊??
 
'select * from 企业诚信 where rownum<3'
 
是由于字段里有一个空格吧?
 
哈哈,我也是最近才转 oracle 的, oracle 里有些 sql 语法以及内置函数同 sql server 不一样的。
比如 oracle 就不支持 top 关键字。得用内置变量 rownum 来判断。
另外,比如
select * from table1 where rownum < 3 order by id
这些的语句,oracle 是先取前两条记录然后才排序的。要想实现先排序再取前两条记录得这样写:
select * from (select * from table1 order by id) where rownum < 3
不爽!
 

Similar threads

D
回复
0
查看
902
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
737
import
I
顶部