今天在工作中遇到一个有趣的问题,看列子:
#1 工作场景需求:
要求展示结果必须为左图样式,业务查询出来为右图样式:
用一般的ASC或者DESC都不能实现,现需要对右图数据进行自定义排序:
想法一:使用order by decode() 进行排序。
order by decode
(
a.proname,
'矿渣粉(含高硫)' ,'1',
'水渣' ,'2',
'水泥32.5R' ,'3',
'水泥42.5' ,'4',
'水泥42.5R' ,'5',
'水泥PSA32.5' ,'6',
'水泥PSB32.5' ,'7',
'钢渣粉' ,'8',
'转炉灰' ,'9',
'钢渣' ,'10'
)
但是结果并不理想:(如下图,本应在第10位的‘钢渣’跑到了第二位,除此之外均正常)