ORDER BY
with a CASE
-Statement
Col1
sorted by date-column Col2 DESC
Col1
sorted by Col1 DESC
I've tried following:
SELECT columns FROM tables WHERE condition
ORDER BY
case when Table1.Col1 IS NULL then 0 end, Table2.Col2 DESC,
case when Table1.Col1 IS NOT NULL then 1 end, Table1.Col1 DESC
But the sort order is wrong, the NOT NULL values are first(sorted by Col2 instead of Col1). I think i've missed a detail.
SELECT columns FROM tables
WHERE condition
ORDER BY
case when Table1.Col1 IS NULL then 0 else 1 end ASC
,case when Table1.Col1 IS NULL then Table2.Col2 else Table1.Col1 end DESC
This should work - just make the first column 0 or 1 based on whether it's null or not:
SELECT columns FROM tables WHERE condition
ORDER BY
case
when Table1.Col1 IS NULL then 0
else 1
end,
case
when Table1.Col1 IS NULL then Table1.Col2
else Table1.Col1
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With