name2可以是字符串或数字。即 'one two' 或者 12 我想把名字排在最后,即:
'one two'
12
a a b b one two 1 22
select name1, name2 from names order by name2
问:你会怎么做?p、 在甲骨文中是这样的。
eqoofvh91#
可以在中使用布尔表达式 order by ,例如:
order by
select name1, name2 from names order by left(name2, 1) <= '9', name2
db<>小提琴。
57hvy0tb2#
你可以用 REGEXP_REPLACE() 函数 '[^[:digit:]]*' posix,用于确定字符串中是否包含数字,包括在末尾添加星号以将正则表达式锚定到源文本末尾:
REGEXP_REPLACE()
'[^[:digit:]]*'
SELECT name2 FROM t ORDER BY REGEXP_REPLACE(name2,'[^[:digit:]]*',''), name2
演示
2条答案
按热度按时间eqoofvh91#
可以在中使用布尔表达式
order by
,例如:db<>小提琴。
57hvy0tb2#
你可以用
REGEXP_REPLACE()
函数'[^[:digit:]]*'
posix,用于确定字符串中是否包含数字,包括在末尾添加星号以将正则表达式锚定到源文本末尾:演示