postgresql排序依据,最后一个数字

knpiaxh1  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(327)

name2可以是字符串或数字。即 'one two' 或者 12 我想把名字排在最后,即:

a a
b b
one two
1
22
select name1, name2 
from names 
order by name2

问:你会怎么做?
p、 在甲骨文中是这样的。

eqoofvh9

eqoofvh91#

可以在中使用布尔表达式 order by ,例如:

select name1, name2 
from names 
order by left(name2, 1) <= '9', name2

db<>小提琴。

57hvy0tb

57hvy0tb2#

你可以用 REGEXP_REPLACE() 函数 '[^[:digit:]]*' posix,用于确定字符串中是否包含数字,包括在末尾添加星号以将正则表达式锚定到源文本末尾:

SELECT name2
  FROM t
 ORDER BY REGEXP_REPLACE(name2,'[^[:digit:]]*',''), name2

演示

相关问题