我试图从一个表中选择按价格、年份、名称和其他排序的产品列表......问题是我必须在升序排序时将零值排在最后。
我的代码是:
SELECT * FROM Product P
ORDER BY CASE WHEN @OrderBy='Date ASC' THEN Date END ASC,
CASE WHEN @OrderBy='Price ASC' THEN Price END ASC,
CASE WHEN @OrderBy='Title ASC' THEN Title END ASC,
CASE WHEN @OrderBy='' THEN Match END
这可行,但不要将零放在列表的底部。因此,我尝试对其进行转换(请参阅下一个代码),但它给了我错误Incorrect syntax near ','。
SELECT * FROM Product P
ORDER BY CASE WHEN @OrderBy='Price ASC' THEN
(case A.Price WHEN 0 THEN 1 ELSE 0 END,A.Price )
END ASC
我很感激任何帮助