【发布时间】:2021-07-27 05:26:02
【问题描述】:
我有 3 列要查看,name、name2 和 name3,每行中只有 1 列的值看起来像这样,一个单词后跟一个列表 randomword [m=444] 我有要检查每一列,然后我必须提取该列表中的数字,所以从我的示例中我需要444。
我尝试了以下方法:
Select *,
CASE
WHEN REGEXP_SUBSTR(NAME, '(?:\[m=)') THEN REGEXP_SUBSTR(NAME, '[[]m=([0-9]+)'),
WHEN REGEXP_SUBSTR(NAME2, '(?:\[m=)') THEN REGEXP_SUBSTR(NAME2, '[[]m=([0-9]+)'),
WHEN REGEXP_SUBSTR(NAME3, '(?:\[m=)') THEN REGEXP_SUBSTR(NAME3, '[[]m=([0-9]+)'),
ELSE null
END
from my_table
但现在我看到了这个错误:
SQL 编译错误:位置 0 处的错误行 2 无效参数 函数“IFF”的类型:(VARCHAR(16777216), VARCHAR(16777216), NULL)
【问题讨论】:
标签: snowflake-cloud-data-platform