Oracle用decode函数或CASE-WHEN实现自定义排序 |
1 问题 对 比如字段值为英文字段:
实际我需要的是:
2 decode函数 通过 select * from table_date order by decode(DateStr, 'Monday',1 'Tuesday',2 'Wednesday',3 'Thursday',4 'Friday',5 'Saturday',6 'Sunday',7, 0); 后面的数字可以不连续 。 3 case when语句 另外,还可以用 select * from table_date order 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实现自定义排序的文章就介绍到这了,更多相关Oracle用decode函数或CASE-WHEN实现自定义排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! |