"Webmaster" <[EMAIL PROTECTED]> wrote
in message news:[EMAIL PROTECTED]
> Now I am getting the following error:
> SQL Error: ORDER BY clause should come after UNION ALL not before
Right, you need another level of indirection:
select * from (
select * from table1 where Field2='Red' order by Field1 limit 1
)
union all
select * from (
select * from table1 where Field2='White' and
Field1 < (select Field1 from table1 where Field2='Red' order by
Field1 limit 1)
order by Field1 desc limit 4
)
union all
select * from (
select * from table1 where Field2='Blue' and
Field1 < (select Field1 from table1 where Field2='Red' order by
Field1 limit 1)
order by Field1 desc limit 1
)
union all
select * from (
select * from table1 where Field2='White' and
Field1 > (select Field1 from table1 where Field2='Red' order by
Field1 limit 1)
order by Field1 limit 4
)
union all
select * from (
select * from table1 where Field2='Blue' and
Field1 > (select Field1 from table1 where Field2='Red' order by
Field1 limit 1)
order by Field1 limit 1
)
order by Field1;
Personally, I'd implement logic like this in my application code, rather
than in ever-more-complex SQL statements.
Igor Tandetnik
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users