Hi Bradley,

Your problem is really not that bizarre. Using a order by clause in a subquery is actually not allowed in the SQL standard (neither SQL-99 nor SQL-2003) if you read the spec closely. I can only speculate why other DBs have decided to deviate from the standard. Derby attempts to adhere to it.

HTH,
Thomas

Bradley Munz wrote:
Hi there,

I have a bizarre problem with "order by" usage in Derby sql. Below is a simple table from that contains some availability data:

/CREATE TABLE agent_availabilty_rt/
/agent_id integer,/
/username varchar(30) UNIQUE, /
/reserved tintyint DEFAULT 1,/
/availtime bigint,/
/PRIMARY KEY(agent_id))/

I need to extract this data and "join" it with another table (which isn't of importance in this email):

/select agent_avail.username,agent_avail.availtime /
/from (/
/    select username,agent_id,availtime /
/    from agent_availabilty_rt /
/    where agent_availabilty_rt.reserved = 0 /
/    order by agent_availabilty_rt.availtime asc/
/) agent_avail/

For some reason derby doesn't like this bit of sql (However it does work on other DBs like postgres). If I remove the "order by" I.e:

/select agent_avail.username,agent_avail.availtime /
/from (/
/    select username,agent_id,availtime /
/    from agent_availabilty_rt /
/    where agent_availabilty_rt.reserved = 0 /
/    //order by agent_availabilty_rt.availtime asc/
/) agent_avail /

it works fine.

Is there something I'm missing here?

Thanks in advance.
Brad Munz



Reply via email to