одинаковую нумерацию в старом и новом комплексе запрос должен быть одинаково отсортирован и в старом комплексе и в новом. Нужно отсортировать по полю varchar так, чтобы получилось так, как в старом комплексе (там древний-древний язык сортирует)
N1 от 12.01.2012
N138 от 12.01.2012
N162 от 12.01.2012
В постгресе получается:
N138 от 12.01.2012
N162 от 12.01.2012
N1 от 12.01.2012
Нет ли какого-либо простого способа отсортировать также, как и в старом комплексе? (Вопрос из интернета, проблема такая же)
А почему сортировать надо по varchar? У id какой тип?
Сортировка вполне возможна по какой-то функцыи или выражэнию. Напишыте такое, которое извлекает этот номер и преобразует его в число -- по нему и сортируйте. PS Да, теоретически в libicu, которая используйется в postgres с 10 версии для сортировки текстов -- есть ключик, который позволяет такую "числовую" сортировку текста. И он, возможно, дажэ можэт быть установлен через какие-то параметры CREATE COLLATION, чтобы быть использованным... Но возможно и не можэт, понять это из документацыи на libicu я не могу, а прямой поддержки такой сортировки в posgres нет. В общем, если надо просто сделать -- то своя функцыя.
Обсуждают сегодня