Oracle 指定字段排序 Oracle自定义排序 Oracle特定字段排序
一、概述
在项目开发中,遇到一个需求大致内容是: 某个位置的用户,优先推荐当地服务。比如:在某个城市,优先推荐某个城市的服务;城市没有,则推荐所在省份的服务。看了下数据库的表设计,每个服务,都会有所在区域的代码areaCode , 且可以通过基于手机位置,获取到用户所在的城市 areaCode ,由于数据库使用的是Oracle,那么问题就可以变成,根据指定的areaCode 字段进行排序。
二、代码实现
1、使用 Decode 函数,使用指定字段排序
SELECT *FROM (
SELECT '140000' AS area
FROM dual
UNION ALL
SELECT '141000' AS area
FROM dual
UNION ALL
SELECT '141100' AS area
FROM dual
UNION ALL
SELECT '151000' AS area
FROM dual
UNION ALL
SELECT '152200' AS area
FROM dual
) t
ORDER BY
DECODE(SUBSTR(t.AREA,0,4) ,'1410',1) ,
DECODE(SUBSTR(t.AREA,0,2),'14',2)
2、排序结果如下:
3、用户所在区域:152200 的排序
SELECT *FROM (
SELECT '140000' AS area
FROM dual
UNION ALL
SELECT '141000' AS area
FROM dual
UNION ALL
SELECT '141100' AS area
FROM dual
UNION ALL
SELECT '151000' AS area
FROM dual
UNION ALL
SELECT '152200' AS area
FROM dual
) t
ORDER BY
DECODE(SUBSTR(t.AREA,0,4) ,'1522',1) ,
DECODE(SUBSTR(t.AREA,0,2),'15',2)
4、152200 排序效果如下:
参考资料:
Oracle 中文排序 Oracle 中文字段排序
Oracle Decode 函数用法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)