Alexei Novakov wrote:
> 
> Hello,
> 
> I'm running MaxDB 7.5.0.18 on Windows. In order to get
> first several ordered records I use usual query:
> 
> select * from
> (
>     select * from
>     some_table
>     order by some_column
> )
> where rowno < 2
> 
> I get the error here:
> 
> * -5016: Missing delimiter: ) SQLSTATE: 42000
> 
> Obviously it doesn't like 'order by' clause in
> subselect, as soon as I remove it like:
> 
> select * from
> (
>     select * from
>     some_table
> )
> where rowno < 2
> 
> It works fine, but it's not what I need. I have some
> feeling that such queries were working in older
> versions of SAPDB/MaxDB. 

That feeling is incorrect. SAPDB/MaxDB did not allow ORDER BY in
subqueries/from-selects.

> Is there some tricks to do to
> make it work? Or maybe there is other way to get
> limited sorted output in MaxDB?

Every client-'language' has some call to get the next resultrow (getnext
or how it may be named). Why not get rid of the from-select, just do 
select * from
    some_table
    order by some_column

and then loop over the results, counting them and stop if either error
100, row not found, or the wanted number of rows is found?


On the other hand:
There is a dirty trick, which will work up to a certain length of the
'order-columns'. Use group by instead of order by in the from-select.
I would never recommend doing this, but...

Elke
SAP Labs Berlin 

> 
> Thank you.
> 
> Alexei
> 
> --
> MaxDB Discussion Mailing List
> For list archives: http://lists.mysql.com/maxdb
> To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]


--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to