用户的应用场景中,先对数据排序,然后利用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)
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)