У меня есть ряд строк в моей таблице, которые я хочу заказать. например.
Chapter 1
Chapter 2
Chapter 11
Chapter 12
Чтобы упорядочить их правильно, мне нужно было бы дополнить их нулями.
Chapter 001
Chapter 002
Chapter 011
Chapter 012
Может быть, я могу использовать regexp_replace()
дополнение нулями с использованием регулярного выражения.
regexp_replace(chapters.name,'(\d+)\D*','0\1') as name
Это решение не работает. Я подумал, что, может быть, я смогу вычислить длину обратной ссылки и использовать это число, чтобы дополнить то, что мне нужно:
regexp_replace(chapters.name,'(\d+)\D*',lpad('\l',3-length('\1'),'0') as name
но \1
в length()
всегда возвращает 2, хотя я заметил, что использование \1
в определенной функции postgres переводит \1
в фактические захваченные данные.
Как добавить нули, используя строковые функции Postgres и регулярное выражение Postgres?