I have a huge table and I want simple sorting.
It could be so easy. I could just create an index and do some really fast sorting thanks to that index.
But my client wants to put NULLs to the end, which is complicates the whole situation.
Instead of simple: SORT BY name ASC I have to do SORT BY name IS NULL ASC, name ASC. That would be ok, but it because of that my index is useless, and the sorting is very slow.
I don’t know if there’s a way to solve this problem, but if there is one, I desperately ask for help. :'(
UNION ALLis not guaranteed to preserve the record order, but with current implementation the finalORDER BYwill amount just to a single pass over already ordered fields:Omitting the final
ORDER BYmay break your application in the future.This is probably one of the rare cases when it’s better to split the query in two on the client side.