liulianqian0513  发表于 2020-8-5 11:24 显示全部楼层 楼主
Oracle 排序后有rownum=1这样的条件语句, GBase不支持rownum。

冉狐狸  发表于 2020-8-5 11:29 显示全部楼层 沙发
用户的应用场景中,先对数据排序,然后利用rownum=1取到第一个值,由于GBase不支持rownum,可以将这种场景的语句用max/min来替换。
Oracle:
SQL> select * from (select name,age from test1 order by age desc) a where rownum=1;

NAME                            AGE
-------------------- ----------
xyz                             30

SQL> select * from test1 where age=(select max(age) from test1);

NAME                            AGE
-------------------- ----------
xyz                             30

GBase:
gbase> select * from (select name,age from test1 order by age desc) a where rownum=1;
ERROR 1054 (42S22): Unknown column 'rownum' in 'where clause'
gbase> select * from test1 where age=(select max(age) from test1);
+------+------+
| name | age  |
+------+------+
| xyz  |   30 |
+------+------+
1 row in set (0.44 sec)

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