#postgresql-9.5
#postgresql-9.5
Вопрос:
Тип столбца: jsonb
Здесь данные таблицы:
Теперь я хочу преобразовать 2,5 кг в 2500. И удалите оставшуюся подстроку.
Здесь запрос:
select id,
case when title_en ~ 'kg$'
then
cast(replace(substring(title_en
from
(length(title_en) - position(' ' in reverse(title_en)) 1) -- last space position
for
(position('kg' in title_en)) - (length(title_en) - position(' ' in reverse(title_en)) 1) -- count of chars to extract
),',','.')::float * 1000 as text)
else title_en
end,
weight_qty, options_weight from result_table
Я преобразовал весь столбец в тип text.
Вот результат:
Неплохо. Это правильный результат. Теперь мне нужно отфильтровать содержимое записи 2500 в столбце title_en
Я пробую это (показывать только предложение where)
weight_qty, options_weight from result_table
where
title_en ~ '2500'
Но результат пуст.
Но если я попытаюсь использовать старое значение (2,5 кг), то оно исправит отображение одной записи.
weight_qty, options_weight from result_table
where
title_en ~ '2.5kg'
Почему бы не работать с новым значением (2500)?