you dont require the CASE WHEN in select list just use like thisSELECT products.productid,Name,Price,SalePriceFROM productswhere catcode=61order by coalesce(nullif(SalePrice,0.00),Price) desc
and if you want to use CASE WHEN in order by use like thisorder byCASE WHEN @orderb = '0' THEN productidEND desc,CASE WHEN @orderb = '1' THEN productidEND asc,CASE WHEN @orderb = '2' THEN coalesce(nullif(SalePrice,0.00),Price)END asc,CASE WHEN @orderb = '3' THEN nameEND asc,CASE WHEN @orderb = '4' THEN coalesce(nullif(SalePrice,0.00),Price)END desc,CASE WHEN @orderb = '5' THEN nameEND desc