El resultado de una comparación en MySQL es 0
o 1
. Entonces Stock > 0
es 1
si true
. Y 1
y mayor que 0
. Así que usa
ORDER BY Stock = 0 ASC, Price DESC
o
ORDER BY Stock > 0 DESC, Price DESC
o
ORDER BY case when Stock > 0
then 1
else 2
end,
Price DESC