Wynik porównania w MySQL to 0
lub 1
. Więc Stock > 0
to 1
jeśli true
. I 1
i większa niż 0
. Więc albo użyj
ORDER BY Stock = 0 ASC, Price DESC
lub
ORDER BY Stock > 0 DESC, Price DESC
lub
ORDER BY case when Stock > 0
then 1
else 2
end,
Price DESC