这是我的数据:

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.

09-12 02:55