PostgreSQL:对数字前的字母进行排序

时间:2018-11-16 07:49:34

标签: postgresql sql-order-by

我想按以下顺序排序bpchar列(先按a-z,再按数字):

abc
bcd     
xrf/1     
zyd   
0/abc
0/bdc   
0/efg    

我该怎么做?

谢谢

1 个答案:

答案 0 :(得分:1)

不能完全从您的问题中看出您真正想要的是什么。如果要检查字符串的第一个字符是数字还是字母,则可以像这样在CASE中使用ORDER BY表达式。

select * FROM t ORDER BY
          CASE 
             WHEN col ~ '^[a-zA-Z]' THEN 1
             WHEN col ~ '^[0-9]'    THEN 2
           END,col;

Demo