尝试在 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。原因:位置必须为正”
在上面的 case 语句中,它似乎在 -1 或 0 值处失败。
我做错了什么?
答案 0 :(得分:0)
没有看到您的表格很难说,但是当模式位于字符串的开头时,regexp_instr()
将返回 1。然后,您减去 1,而 0 是 regexp_substr()
的无效位置参数。 doc
也许您打算使用 SUBSTR
而不是 REGEX_SUBSTR()