snowflake-cloud-data-platform - 带有正则表达式的雪花
问题描述
尝试在 Snowflake 中运行以下 SQL:
SELECT fm_id ,
CASE
WHEN regexp_instr(ASSD,'...',1) > 0
THEN regexp_SUBSTR(ASSD,1,regexp_instr(ASSD,'...',1)-1)
ELSE ASSD
END ASSD
from
(SELECT a.fm_id,
listagg(a.STUID, '; ') within GROUP (
ORDER BY a.Fm_id, a.STUID ) ASSD
from stu_d a
where fm_id = 1222
group by a.fm_id
)
得到错误:
“无效的参数值:0。原因:位置必须为正”
在上面的案例陈述中,它似乎在 -1 或 0 值处失败。
我究竟做错了什么?
解决方案
没有看到你的表很难说,但是regexp_instr()
当模式位于字符串的开头时会返回 1。然后,减去 1,而 0 是无效的位置参数regexp_substr()
。文档
也许你打算不SUBSTR
使用REGEX_SUBSTR()
推荐阅读
- html - 在保持基线对齐的同时向上移动单元格
- r - QQ图并排和qqline
- class - 自动完成属性错误:“多边形”对象没有属性“_meta”
- anaconda - 为什么我不能再打开 Orange?
- python - 使用pyspark从没有accountkey的blob中读取数据
- android - Jetpack Compose 自动填充密码更新
- ibm-midrange - IBM i - CL - 将库和数据区域名称作为参数传递到 RTVDTAARA
- python - 连接字符串以充当现有变量
- frontend - 如何为嵌入式 Wistia 视频容器添加边框半径
- python - 使用 CSV 文件创建维恩图的 Python 索引错误