如果需要对查询结果自定义排序,可以使用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. 在Centos 7下编译openwrt+njit-client
  2. 戴尔sc系列存储阵列柜服务器,国产化的戴尔存储 到底都长什么样?
  3. LintCode: Triangle
  4. wringPi 初始化GPIO 为上拉_你彻底弄清GPIO内部结构和各种模式了吗?
  5. CLR Via C# 3rd 阅读摘要 -- Chapter 24 – Runtime Serialization
  6. linux mysql 系统时间函数吗_Linux 宝库 - Mysql日期和时间函数不求人
  7. 【Chrome浏览器】常用快捷键整理
  8. 从谷歌公司发现的十个至理名言
  9. opensource项目_最佳Opensource.com:科学
  10. 开源的一个java 写的图床
  11. HTML5实现输入密码(六个格子)
  12. ios 文本翻转_反转文字的方法_深入浅出 iPhone 开发 (使用 Swift4)_iOS视频-51CTO学院...
  13. 惠普局域网共享打印机设置_打印机usb转网络?打印机共享怎么设置?怎样设置hp打印机共享器操作方法...
  14. SAS实验05 ——方差分析
  15. 使用云呐统一运维一体机降低运维数据中心的运营成本
  16. 【OpenCV 例程 300篇】249. 特征描述之视网膜算法(FREAK)
  17. 综合架构-高可用服务
  18. 深度硬核,思维导图拯救拖延症患者!
  19. word2016页码设置(包括目录去除页码)
  20. ‘vue-cli-service‘ is not recognized as an internal or external command

热门文章

  1. 1-JS-浏览器-Document
  2. Microsurvey
  3. ad16自动布线设置规则_ad 布线设置(adpcb设置规则模板)
  4. JSP连接数据库(SQL 2014)
  5. VAE:变分自编码器的理解与实现
  6. 数据库关键字搜索查询html,js实现搜索框关键字智能匹配代码
  7. 洛谷 P2031 脑力达人之分割字串
  8. 判断kkt条件的例题_KKT条件和拉格朗日乘子法详解
  9. 一级计算机综合训练第五卷,2014年计算机等级考试一级MSOFFICE综合训练(5).pdf
  10. php 上传 读取 excel,php上传excel表格并获取数据