Oracle用decode函数或CASE-WHEN实现自定义排序的方法
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了Oracle用decode函数或CASE-WHEN实现自定义排序的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。1 问题对SQL排序,只要在orde
千家信息网最后更新 2026年10月31日Oracle用decode函数或CASE-WHEN实现自定义排序的方法
这篇文章主要讲解了Oracle用decode函数或CASE-WHEN实现自定义排序的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
1 问题
对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序。但排序规则是默认的,数字、时间、字符串等都有自己默认的排序规则。有时候需要按自己的想法来排序,而不是按字段默认排序规则。
比如字段值为英文字段:Monday、Tuesday、Wednesday等,如果按字段默认排序规则就为:
Friday
Monday
Saturday
Sunday
Thursday
Tuesday
Wednesday
实际我需要的是:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
2 decode函数
通过decode函数可以实现,如下:
select * from table_dateorder by decode(DateStr, 'Monday',1 'Tuesday',2 'Wednesday',3 'Thursday',4 'Friday',5 'Saturday',6 'Sunday',7, 0);
后面的数字可以不连续。
3 case when语句
另外,还可以用case when来实现:
select * from table_dateorder by (CASE DateStr WHEN 'Monday' then 1 WHEN 'Tuesday' then 2 WHEN 'Wednesday' then 3 WHEN 'Thursday' then 4 WHEN 'Friday' then 5 WHEN 'Saturday' then 6 WHEN 'Sunday' then 7 ELSE 0 END);
4 总结
当然,把字段直接赋值为对应的数字效率会高很多,通过另外一张表再建立映射关系。
看完上述内容,是不是对Oracle用decode函数或CASE-WHEN实现自定义排序的方法有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。
排序
字段
函数
规则
内容
数字
方法
学习
兴趣
升序
可以通过
字符
字符串
实际
对此
小伙
小伙伴
想法
效率
时间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州为想互联网科技有限公司
互联网最新的科技
互联网科技财经
互联网金融 科技
中国 科技 互联网
期待互联网科技
沃里互联网科技
苏州大垚互联网科技
互联网科技网站
深圳期待互联网科技
上海卓越科技 互联网
上海亿帐通互联网科技
顶级互联网科技成果有哪些
阿里互联网科技公司
互联网科技人工智能实验室
民营互联网公司国防科技
滨湖区互联网智能科技产品有哪些
合肥互联网科技公司公章图片
广东工业互联网大赛深圳学泰科技
上海万顺科技互联网有限公司招聘
湖北九亚互联网络科技有限公司
科技互联网龙头
美国互联网科技巨头监管
互联网科技公司招聘
互联网汽车科技小镇
创业天下互联网科技有限公司
济南有互联网科技公司吗
银行科技岗属于互联网吗
江苏互联网智能科技产品出厂价
知域互联网科技有限公司官网