MSSQL中外卖菜单如何按价格升序且同价菜品按类别分组排序?
解决方案:按价格、类别、菜品排序外卖菜单
你的需求是让外卖菜单先按价格升序排列,同价格的菜品按类别归类,再按字母顺序排序。当前的SQL语句仅指定价格和菜品名称作为排序依据,导致同价格不同类别的菜品混排。
修改后的SQL语句如下:
SELECT dish, dishPrice, category FROM tbldishes ORDER BY CAST(dishPrice AS DECIMAL) ASC, category ASC, dish ASC
逻辑说明:
CAST(dishPrice AS DECIMAL) ASC:将字符串类型的价格转换为Decimal类型,确保数值排序的准确性,按价格从低到高排列。category ASC:价格相同时,按菜品类别升序排列,实现同类别菜品归为一组的需求。dish ASC:同一价格同一类别下,再按菜品名称的字母顺序升序排列。
执行该语句后,输出结果会匹配你的期望:
Barbeque Sauce 0.85 酱料组 Coleslaw 0.85 酱料组 Garlic Mayo 0.85 酱料组 Coke Zero 1.00 饮料组 Pepsi Max 1.00 饮料组 Chips 2.95 小吃组
内容的提问来源于stack exchange,提问作者mark davies
相关产品推荐
相关产品推荐

