Oracle 10g - 使用字母对数字进行排序

时间:2016-10-18 13:41:53

标签: sql oracle sorting oracle10g

我需要对以下值列表进行排序,包括点:

1.
10.
2f.
2c.
2a.

我需要按以下顺序排序:

1.
2a.
2c.
2f.
10.

我在SQL Developer上使用以下代码对列表进行排序:

with testdata as
(
select column_value from table (sys.odcivarchar2list
   ('1. '
   ,'10. '
   ,'2f. '
   ,'2b. '
   ,'2a. '))
   )
select column_value
  from testdata
 order by case when replace(translate(trim(column_value),'0123456789','0'),'0','') is null then to_number(column_value) end
         ,column_value
/

但我没有得到我想要的结果:

1.
10.
2a.
2c.
2f.

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以先使用dir /b "%%~ni*" | find /v /c "">countfiles.io set /p nbfic=<countfiles.io del countfiles.io echo %nbfic% 按字符串中的数字排序,然后使用其余的非数字字符排序。这假设字符串始终有数字后跟非数字字符。

regexp_substr
相关问题