@Eugsoft

PostgreSQL. Порядок сортировки. Можно ли запросом изменить порядок сортировки, чтобы сначала сортировались записи ru, а после en?

Имеется текстовое поле, в котором есть записи на русском и английском языках. Необходимо запросом сделать сортировку записей таким образом, чтобы сначала сортировались записи на русском, а затем на английском (а-я, затем a-z), а не наоборот (a-z, затем а-я).

Исходный запрос:
SELECT 
	name
FROM unnest(ARRAY['Z', 'Я', 'A (англ)', 'А (рус)']) name 
ORDER BY name
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
@Everything_is_bad
например, создать свое правило https://postgrespro.ru/docs/postgresql/16/collatio...
или сделать в два запроса, сначала кириллицу, потом латиницу и объединить результат (так себе идея)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
SELECT 
	name
FROM (select 'Z' name union select 'Я' union select 'A (англ)'union select 'А (рус)') t
ORDER BY regexp_matches(name, '^[А-яа-я]') asc, regexp_matches(name, '^[A-za-z]') asc, name;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы