Алфавитно-цифровая сортировка в PostgreSQL

В базе данных у меня есть различные буквенно-цифровые строки -в следующем формате:

10_asdaasda
100_inkskabsjd
11_kancaascjas
45_aksndsialcn
22_dsdaskjca
100_skdnascbka

Я хочу, чтобы они были отсортированы по номеру перед строкой, а затем по имени самой строки, но, конечно, символы сравниваются один за другим, и поэтому результат Order by name дает:

10_asdaasda
100_inkskabsjd
100_skdnascbka
11_kancaascjas
22_dsdaskjca
45_aksndsialcn

вместо порядка, который я бы предпочел:

10_asdaasda
11_kancaascjas
22_dsdaskjca
45_aksndsialcn
100_inkskabsjd
100_skdnascbka

Честно говоря, я был бы в порядке, если бы строки просто сортировались по номеру впереди. Я не очень хорошо знаком с PostgreSQL, поэтому не знал, как лучше всего это сделать. Буду признателен за любую помощь!

24
задан Erwin Brandstetter 27 August 2014 в 18:05
поделиться