sql 多个字段中文数字排序

 

数据如下格式:

一届    第一轮   第一组  

假设届最多50届,轮最多到50轮 ,组最多20组

 

排序结果如下:

一届  第一轮   第一组

一届  第二轮   第二组

二届  第一轮   第一组

二届  第二轮   第一组

二届  第二轮   第二组

select a.period_time as "届",
       instr('一,二,三,四,五,六,七,八,九,十,
			 十一,十二,十三,十四,十五,十六,十七,十八,十九,二十,
			 二十一,二十二,二十三,二十四,二十五,二十六,二十七,二十八,二十九,三十,
			 三十一,三十二,三十三,三十四,三十五,三十六,三十七,三十八,三十九,四十,
			 四十一,四十二,四十三,四十四,四十五,四十六,四十七,四十八,四十九,五十',substring(a.period_time, 1, instr(a.period_time,'届')-1)) AS JOrderNum1,
			 
			 a.gear_time as "轮",
				instr('一,二,三,四,五,六,七,八,九,十,
			 十一,十二,十三,十四,十五,十六,十七,十八,十九,二十,
			 二十一,二十二,二十三,二十四,二十五,二十六,二十七,二十八,二十九,三十,
			 三十一,三十二,三十三,三十四,三十五,三十六,三十七,三十八,三十九,四十,
			 四十一,四十二,四十三,四十四,四十五,四十六,四十七,四十八,四十九,五十',substring(a.gear_time, 2, instr(a.gear_time,'轮')-2)) AS LOrderNum2,
			 
			 a.patrol_group as "组",
			 instr('一,二,三,四,五,六,七,八,九,十,
			 十一,十二,十三,十四,十五,十六,十七,十八,十九,二十',substring(a.patrol_group, 2, 1)) AS ZOrderNum3,
			
       
			 from list a  
			 
			 ORDER BY JOrderNum1 ,LOrderNum2 ,ZOrderNum3

 

你可能感兴趣的:(sql)