PostgreSQL: сортировка букв перед числами - PullRequest
0 голосов
/ 16 ноября 2018

Я бы хотел заказать столбец bpchar в следующем порядке (сначала по a-z, затем по номерам):

abc
bcd     
xrf/1     
zyd   
0/abc
0/bdc   
0/efg    

Как мне это сделать?

Спасибо

1 Ответ

0 голосов
/ 16 ноября 2018

Не могу полностью сказать из вашего вопроса, что вы на самом деле хотите. Если это первый символ строки, которую вы хотите проверить, является ли она числовой или алфавитной, вы можете использовать выражение CASE в ORDER BY, например:

select * FROM t ORDER BY
          CASE 
             WHEN col ~ '^[a-zA-Z]' THEN 1
             WHEN col ~ '^[0-9]'    THEN 2
           END,col;

Демо

...