You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake Substring Concat报错:无法识别空数值,财季上季度计算咨询

Snowflake财季上季度计算错误修复方案

错误原因

  • 截取位置错误:FYxxQy格式的财季字符串共6位,季度数字位于第6位,原代码中SUBSTR(p.current_qtr,5,1)取到的是字符Q,而非季度数字,后续隐式转换失败触发报错
  • 运算优先级错误:Snowflake中字符串拼接符||优先级低于算术运算符,未加括号时会先尝试将拼接后的字符串做减法运算,触发数字格式识别错误
  • 分支逻辑错误:ELSE分支的拼接逻辑完全不符合需求,误将财年数值减1且未保留财季前缀

修复后代码

SELECT *,
CASE 
   WHEN SUBSTR(p.current_qtr, 6, 1) = '1'
      THEN SUBSTR(p.current_qtr, 1, 2) || (TRY_CAST(SUBSTR(p.current_qtr, 3, 2) AS INTEGER) - 1) || 'Q4'
      ELSE SUBSTR(p.current_qtr, 1, 5) || (TRY_CAST(SUBSTR(p.current_qtr, 6, 1) AS INTEGER) - 1)
END AS prev_qtr
FROM your_table_name AS p 

验证效果

current_qtrprev_qtr
FY21Q1FY20Q4
FY21Q2FY21Q1
FY21Q3FY21Q2
FY21Q4FY21Q3

内容的提问来源于stack exchange,提问作者B.Z.B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:36:03