Как извлечь номер (цену) из описания - PullRequest
0 голосов
/ 08 мая 2019

Цена товара в формате

999,99

999 -  1 ..4 digits 
, - comma sign marks decimal point 
99 - 2 digits after price

Таблица Postgres 9.1 содержит столбец типа char (50).Этот столбец может содержать цену в отдельном слове, разделенном пробелами.Как

Product 12,99 blue
Another product 4,59
This is third 124,39 item price

Как извлечь цену из описания в операторе выбора?Для этих 3 строк результат должен быть

12,99
4,59
124,39

Использование

PostgreSQL 9.1.2 на x86_64-unknown-linux-gnu, скомпилировано gcc-4.4.real (Debian 4.4.5-8)) 4.4.5, 64-битная

1 Ответ

3 голосов
/ 08 мая 2019

Вы можете сделать это, используя функцию substring(yourString FROM yourPattern).

SELECT substring(columnName FROM '\d{1,4},\d{2}') 
FROM tableName

Regex объяснение:

d{1,4} - хотя бы одна цифра, но не более четырех цифр

, - запятая

d{2} - ровно две цифры

...