雪花 SQL 代码从字符串中提取 2 个值

问题描述 投票:0回答:1

我有一个包含长字符串的字段,需要将 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')
尝试获取页面但没有成功

sql snowflake-cloud-data-platform
1个回答
0
投票

您可以使用嵌套

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 美元
© www.soinside.com 2019 - 2024. All rights reserved.