解决order by多个字段排序无效!

SELECT T.YEAR, T.REGION_TYPE,t.REGION_NUM FROM GIMZG_TB_CURRENT_SITUATION T

LEFT JOIN SYS_TS_REGION SYSR ON T.REGION_ID=SYSR.ID

LEFT JOIN BI_TB_PERSONNEL P ON T.USER_ID=P.LOGIN_ID

WHERE T.YEAR IN (2020,2021)

ORDER BY T.YEAR DESC,  T.REGION_TYPE ASC , T.REGION_NUM  ASC

-----------------------------------------------------------------------------------------------------------

上面的查询排序是错乱的。检查后发现,T.REGION_NUM 在数据库存的是VARCHAR2的,经过调整。

SELECT T.YEAR, T.REGION_TYPE,t.REGION_NUM FROM GIMZG_TB_CURRENT_SITUATION T

LEFT JOIN SYS_TS_REGION SYSR ON T.REGION_ID=SYSR.ID

LEFT JOIN BI_TB_PERSONNEL P ON T.USER_ID=P.LOGIN_ID

WHERE T.YEAR IN (2020,2021)

ORDER BY T.YEAR DESC,  T.REGION_TYPE ASC , CAST(T.REGION_NUM as integer)  ASC

修改之后排序正常了,特此记录一下。