如何在Snowflake中从SKU字符串提取Ounce前的数值?
解决方案:提取SKU中Ounce前的重量值(含小数)
你的问题出在原正则表达式仅匹配整数数字,无法识别带小数点的数值。只需调整正则的数字匹配规则,即可兼容整数和小数场景,Snowflake中可以直接用REGEXP_SUBSTR实现:
REGEXP_SUBSTR(INGREDIENT, '\b(\d+(\.\d+)?) Ounce\b', 1, 1, 'e', 1)
正则规则说明:
\b:匹配单词边界,确保提取的数字是独立的(避免和其他字符粘连)\d+:匹配至少一位整数部分(\.\d+)?:可选的小数部分,允许小数点后跟随至少一位数字,?表示该部分可有可无Ounce\b:匹配空格+Ounce的完整单词,确保只提取Ounce前的目标数值
测试示例:
- 输入:
Sauce - 0.5 Ounce (oz)→ 返回:0.5 - 输入:
10 Ounce Bottle→ 返回:10 - 输入:
Seasoning 2.75 Ounce Pack→ 返回:2.75
内容的提问来源于stack exchange,提问作者ssubr
相关产品推荐
相关产品推荐

