这是我的数据:
Bensus Data 1872 1 Bombay
Bensus Data 1872 2 Bombay
Bensus Data 1872 Bombay
Bensus Data 1872 Combay
默认情况下,PostgreSQL数字具有更高的优先级,我需要如下数据:
Bensus Data 1872 Bombay
Bensus Data 1872 1 Bombay
Bensus Data 1872 2 Bombay
Bensus Data 1872 Combay
在数据中看不到特定的结构。
最佳答案
您可以使用regexp_replace
进行无编号排序。在这里,我用颚化符([0-9]
)替换任何数字(~
),它对below any letter进行排序。global'g'
标志意味着替换所有匹配项,而不仅仅是第一个匹配项。
select *
from YourTable
order by
regexp_replace(col1, '[0-9]', '~', 'g')
, col1
Example at SQL Fiddle.