首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排序包含数字的VARCHAR

排序包含数字的VARCHAR
EN

Stack Overflow用户
提问于 2015-08-07 16:45:05
回答 1查看 86关注 0票数 0

我有一张存放在桌子里的房间里的位置清单。他们大多叫A1,A2,.A16,B1,B2,B16,C1.

当查询此列表时,我将如何对结果进行排序,以便将字母与数字按顺序分组?

显然SELECT name FROM Shelves ORDER BY name不工作,因为它返回A1,A10,.A16,A2.

FROM Location ORDER BY LENGTH(name)也不起作用,因为A、B、C等不再分组。

编辑:

不是所有的位置名称都是一个字符后面跟着数字,也有安全1,安全2,安全3,货币1,货币2.(房间保险箱里的架子)。

A1等没有空格,但安全1,货币1和诸如此类。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-07 17:06:50

使用regex将名称与数字分开。

代码语言:javascript
复制
SELECT *
FROM Shelves  
ORDER BY
regexp_replace(name , '[^a-zA-Z]*', '', 'g') ,
regexp_replace(name , '[^0-9]*', '', 'g')::INT
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31882821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档