我有一个包含长字符串的字段,需要将 2 个值提取到 2 个新列中 需要将页面作为一列,将价格作为第二列
示例字段:需要年费后的页数为一列,然后页后的美元金额为第二个新列
"The xyz Company
Effective 24-Jan-2024
24 Month Term
按季度分期付款的年费账单 $xxx,x00.00
第一年:
Annual Fee Up to x0,000,000 pages @ $x,xx0,000.00"
regexp_like(special_terms, 'Annual Fee')
尝试获取页面但没有成功
您可以使用嵌套
split_part
;但是,您的数据必须一致。如果你的数据很混乱,那么你的解决方案也会很混乱。最好修复为数据库提供数据的上游系统,然后修改您的数据库表。
with my_data as (
select 'The xyz Company Effective 24-Jan-2024 24 Month Term Annual Fee bills in Quarterly Installments $xxx,x00.00 Year 1: Annual Fee Up to x0,000,000 pages @ $x,xx0,000.00' as col1 union all
select 'Annual Fee Up to 10,500 pages @ $4,000'
)
select
split_part(split_part(col1, 'Annual Fee Up to ', 2),' pages @ ', 1) as pages,
split_part(split_part(col1, 'Annual Fee Up to ', 2),' pages @ ', 2) as price
from my_data
页面 | 价格 |
---|---|
x0,000,000 | $x,xx0,000.00 |
10,500 | 4,000 美元 |