如果需要对查询结果自定义排序,可以使用order by case语句,我们都非常熟悉了,举例如下:

drop table if exists  `Teacher`;
create table Teacher(TID varchar(10),Tname nvarchar(10));
insert into Teacher values('01' , '张三');
insert into Teacher values('02' , '李四');
insert into Teacher values('03' , '王五');select * from `Teacher`order by case `Tname` when '张三' then '1'when '李四' then '2'when '王五' then '3' end;

上述查询结果没有任何问题,如我们想要实现的一样。

如果自定义排序的项目超过10个,还是按照上述序号从"1"排到"10"的话,结果会怎样呢?

drop table if exists  `Teacher`;
create table Teacher(TID varchar(10),Tname nvarchar(10));
insert into Teacher values('01' , '王一');
insert into Teacher values('02' , '王二');
insert into Teacher values('03' , '王三');
insert into Teacher values('04' , '王四');
insert into Teacher values('05' , '王五');
insert into Teacher values('06' , '王六');
insert into Teacher values('07' , '王七');
insert into Teacher values('08' , '王八');
insert into Teacher values('09' , '王九');
insert into Teacher values('10' , '王十');select * from `Teacher`order by case `Tname` when '王一' then '1'when '王二' then '2'when '王三' then '3'when '王四' then '4'when '王五' then '5'when '王六' then '6'when '王七' then '7'when '王八' then '8'when '王九' then '9'when '王十' then '10' end;

然后我们会发现,想要排到第"10"位的项目总会串到第2个,在"1"之后,"2"之前,这是什么原因呢?

其实,我们在设置序号的时候,应按照"01" "02" "03"至"10"的形式(类似在电脑里按照名称对文件/文件夹进行排序),现在我们来试一下

drop table if exists  `Teacher`;
create table Teacher(TID varchar(10),Tname nvarchar(10));
insert into Teacher values('01' , '王一');
insert into Teacher values('02' , '王二');
insert into Teacher values('03' , '王三');
insert into Teacher values('04' , '王四');
insert into Teacher values('05' , '王五');
insert into Teacher values('06' , '王六');
insert into Teacher values('07' , '王七');
insert into Teacher values('08' , '王八');
insert into Teacher values('09' , '王九');
insert into Teacher values('10' , '王十');select * from `Teacher`order by case `Tname` when '王一' then '01'when '王二' then '02'when '王三' then '03'when '王四' then '04'when '王五' then '05'when '王六' then '06'when '王七' then '07'when '王八' then '08'when '王九' then '09'when '王十' then '10' end;

这次运行结果就没有任何问题了,如下:

PS:如果自定义排序超过100个,需按照"001" "002" "003"直至"099" "100",不过在实际情况中,很少有自定义排序的项目超过100个的情况吧。

sql自定义排序问题相关推荐

  1. MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerableT数据源...

    MS SQL自定义函数IsPositiveInteger 判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ...

  2. 【Flink】Flink SQL 自定义 Source format

    1.概述 转载:Flink SQL 自定义 Source format 1.背景 由于 kafka 中的 json 属于嵌套,又不想二次序列化再把它展开,故自定义 format. 2.步骤 1.自定义 ...

  3. sql 自定义函数 示例_SQL滞后函数概述和示例

    sql 自定义函数 示例 In the article SQL Server Lead function overview and examples, we explored Lead functio ...

  4. sql 自定义函数 示例_SQL Server SESSION_CONTEXT()函数与示例

    sql 自定义函数 示例 This article explores the SQL Server session context function, SESSION_CONTEXT() and pe ...

  5. sql自定义函数学习思路_学习SQL:用户定义的函数

    sql自定义函数学习思路 You can create several user-defined objects in a database. One of these is definitely u ...

  6. spark SQL自定义函数:

    spark SQL 自定义函数: 自定义函数: 第一种:  U D F  (用户自定义函数)函数 特点:  一对一的关系,输入一个值以后输出一个值  (一进一出) 大部分的内置函数都是U D F函数 ...

  7. SQL自定义排序规则

    SQL自定义排序规则 原数据 结果顺序数据显示 Apply:提交请求 Review:等待回复 Finish:任务完成 按日期和状态排序,先状态为:提交请求(Apply)-按时间倒序,然后状态为:等待回 ...

  8. spark sql自定义UDF函数-java语言

    背景说明 基于spark sql开发过程中,需要一些类似与官网提供的 int().from_json()等自定函数处理数据.下属将简单讲解通过java如何实现spark sql自定义函数 官方UDF接 ...

  9. sql 自定义函数 示例_SQL Server Choose()函数介绍和示例

    sql 自定义函数 示例 In the article, a CASE statement in SQL, we explored one of the important logical expre ...

最新文章

  1. Dubbo基础专题——第四章(Dubbo整合Nacos分析细节点)
  2. Ubuntu下编译ffmpeg+openh264+x264
  3. 前端学python有什么用-对于一个小白,前端和python哪个更适合?
  4. Linux 硬件信息命令
  5. 一文带你领略JS中原型链的精妙设计!
  6. matlab的灰色关联,灰色关联度Matlab代码
  7. 专访谷歌CEO:像对待家人一样对待员工
  8. learnpythonthehardway下载_Python【十一】:阶段小结
  9. 对于引用的控件被拒绝访问的解决办法的补充(续)
  10. 末日博士:比特币不应出现在散户或机构投资者的投资组合中
  11. python 开发公众号sdk_「公众号开发」基于Serverless架构Python实现公众号图文搜索...
  12. ubuntu14.04.5安装paramiko模块pip install paramiko出现一堆问题的解决过程
  13. 挖数据平台推出实时汇率API接口
  14. 转载 CSDN 谈谈我对证券公司一些部门的理解(前、中、后台)
  15. VLAN访问控制列表
  16. Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程)
  17. 数据标签处理:python将xml文件转换为txt,csv格式
  18. 注册公众号(企业类型的订阅号)参考步骤
  19. 浅谈webGl vr全景模式
  20. 值得收藏!VScode 中这 15 个神仙插件写代码必备!

热门文章

  1. 了解sourceGuardian加密(sg11加密)
  2. 使用xOutput实现NS pro手柄在pc上的使用
  3. x?a:b是什么意思?
  4. lua如何打印行号_Lua常用代码
  5. Java实现王者荣耀小游戏(简单版,带有图片资源)
  6. 服务器主机装win7系统安装,服务器主机装win7系统安装
  7. 园林php源码,园艺和园林绿化HTML5模板
  8. 视频解读:数据化闭环洞察消费者
  9. 一个简单的mp4播放器
  10. mul matlab,汇编语言MUL指令:无符号数乘法