oracle数据库查询语句中中将汉字转换成数字进行排序 *** 作怎么 *** 作。

oracle数据库查询语句中中将汉字转换成数字进行排序 *** 作怎么 *** 作。,第1张

如果不是太多的话

select * from table order by translate(lie,'一二三四五六七八九','123456789')

太多的话就得另说了

如果数字都是小于10的,可以直接order by,按照字符规则排序就是你想要的这个。

如果数字有两位以上的,这时候11会排在2的前面,如果想数字按照数字的规则排序,字母按照字母的规则排序,需要根据条件将数字和字母分别查询出来进行排序,然后使用union all联接出结果。

以前还没碰到过这种需求,刚试出来的!

在模块中创建下面代码:

Function getNum(ByVal str1 As String) As Integer

getNum = 0

For i = 1 To Len(str1)

ks = Mid(str1, i, 1)

If IsNumeric(ks) Then getNum = getNum * 10 + ks

Next

End Function

再创建查询如下:

select address from

(SELECT getNum(address) as num1,address

FROM 表名)

order by num1


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9234194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存