Jag tycker att du bör använda något som liknar
för beställning per delorder by case
when stock > 0 then 0
when stock < 0 then 1
end ascending,
price ascending
Jag kollade inte syntaxen men det är tanken. Du kan google case för att få mer information.
När det gäller resten av er krav skulle jag behöva tabellstrukturen för att bättre förstå...