[ https://issues.apache.org/jira/browse/DERBY-6008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13526258#comment-13526258 ] Knut Anders Hatlen commented on DERBY-6008: ------------------------------------------- Dag, I applied the "c" version of the patch and ran some tests in ij. This particular sequence didn't look quite right to me: ij version 10.10 ij> connect 'jdbc:derby:memory:db;create=true'; ij> create table countries(name varchar(20), population int, area int); 0 rows inserted/updated/deleted ij> insert into countries values ('Norway', 5033675, 385252), ('Sweden', 9540065, 449964), ('Denmark', 5580413, 42894), ('Iceland', 320060, 103001), ('Liechtenstein', 36281, 160); 5 rows inserted/updated/deleted ij> SELECT NAME FROM COUNTRIES ORDER BY POPULATION DESC FETCH FIRST 2 ROWS ONLY; NAME -------------------- Sweden Denmark 2 rows selected ij> SELECT NAME FROM COUNTRIES ORDER BY AREA DESC FETCH FIRST 2 ROWS ONLY; NAME -------------------- Sweden Norway 2 rows selected ij> (SELECT NAME FROM COUNTRIES ORDER BY POPULATION DESC FETCH FIRST 2 ROWS ONLY) INTERSECT (SELECT NAME FROM COUNTRIES ORDER BY AREA DESC FETCH FIRST 2 ROWS ONLY); NAME -------------------- Denmark Iceland 2 rows selected The intersection of ('Sweden', 'Denmark') and ('Sweden', 'Norway') should be ('Sweden') and not ('Denmark', 'Iceland'). > Allow ORDER BY and FETCH/OFFSET in set operands > ----------------------------------------------- > > Key: DERBY-6008 > URL: https://issues.apache.org/jira/browse/DERBY-6008 > Project: Derby > Issue Type: Improvement > Components: SQL > Reporter: Dag H. Wanvik > Assignee: Dag H. Wanvik > Attachments: derby-6008-a.diff, derby-6008-a.stat, derby-6008-b.diff, derby-6008-b.stat, derby-6008-c.diff, derby-6008-c.stat > > > Currently, Derby doesn't allow ORDER BY nested in a set operand, e.g. in the following construct: > (select i from t1 order by j offset 1 row) union > (select i from t2 order by j desc offset 2 rows) > This is allowed by the standard, as far as I can understand, cf. this quote from section 7.12 in SQL 2011: > ::= > > | UNION [ ALL | DISTINCT ] > [ ] > | EXCEPT [ ALL | DISTINCT ] > [ ] > ::= > > | INTERSECT [ ALL | DISTINCT ] > [ ] > ::= > > | > [ ] [ ] [ ] > I.e. the left paren chooses the second alternative in the production for . -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira