如何对字段进行多次排序?SQL Server表排序需求咨询
解决方案:字段值映射 + 基础排序
首先得澄清一下:你要实现的核心并不是「多次排序」,而是对skills字段进行指定的映射替换,同时保持hobby按id升序排列(也就是原表的顺序)。
实现思路
我们可以用CASE语句来定义skills字段的自定义映射关系,再通过ORDER BY id ASC确保结果按id升序排列(对应hobby的顺序要求)。
最终SQL查询语句
SELECT hobby, CASE hobby WHEN 'reading' THEN 'programming' WHEN 'baking' THEN 'encoding' ELSE skills -- cooking的skills保持原数值不变 END AS skills, organization FROM hobbies ORDER BY id ASC;
语句解释
CASE语句:针对不同的hobby值,返回指定的skills内容:- 当
hobby是reading时,返回programming - 当
hobby是baking时,返回encoding - 其他情况(这里是
cooking),直接返回原表的skills值
- 当
ORDER BY id ASC:确保结果按id从小到大排列,也就是你要求的hobby字段的升序顺序。
执行这个查询后,就能得到你想要的结果格式啦。
内容的提问来源于stack exchange,提问作者ylleigh12
相关产品推荐
相关产品推荐

