加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Postgresql排序混合的字母数字数据

发布时间:2020-12-13 16:21:30 所属栏目:百科 来源:网络整理
导读:运行此查询: select name from folders order by name 返回以下结果: alphanumerica testtest 20test 19test 1test 10 但我预计: a testalphanumerictest 1test 10test 19test 20 这有什么不对? 如果有尾随数字,您可以通过拆分文本来手动排序,如下所示:
运行此查询:
select name from folders order by name

返回以下结果:

alphanumeric
a test
test 20
test 19
test 1
test 10

但我预计:

a test
alphanumeric
test 1
test 10
test 19
test 20

这有什么不对?

如果有尾随数字,您可以通过拆分文本来手动排序,如下所示:
SELECT * FROM sort_test
ORDER BY SUBSTRING(text FROM '^(.*?)( d+)?$'),COALESCE(SUBSTRING(text FROM ' (d+)$')::INTEGER,0);

这将对列文本进行排序,首先是所有字符,可选地排除结尾空格后跟数字,然后排除那些可选数字.

在我的测试中工作得很好.

Update使用简单的合并(duh)修复了仅字符串排序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读