我的数据库中有“描述”列。 此列包含各种产品说明。 在每种产品的描述中都提到了价格。
格式是'苹果包含10欧元/月含药袋','西红柿每包9欧元/包含袋'等等。
我想提取这些产品的价格,即'10','9'等。
select SUBSTR(DESCRIPTION, 0, INSTR(DESCRIPTION, 'EUR/month') - 1)
from PRODUCT_DESCRIPTION
where PRODUCT IN ('Apples', 'Tomatos');
我使用了上面的脚本,但我得到的结果是:'苹果10','西红柿9'等等。
你知道我应该使用什么条件才能获得成本吗?
答案 0 :(得分:0)
如果这始终是结构,那么只需取出数字:
select regexp_substr(description, '[0-9.]+')
from product_description
答案 1 :(得分:0)
您可以使用regexp_replace删除其余部分并使用分组。
select regexp_replace(DESCRIPTION, '.*\s+(\d+)\s*EUR.*','\1')
-- You are using the grouping of regexp, and reuse the number that has been found
from PRODUCT_DESCRIPTION