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

CASE运算符类型不匹配报错排查与SQL逻辑修正请求

解决BigQuery CASE语句类型不兼容报错问题

报错原因

你遇到的报错核心是CASE语句要求所有分支返回可兼容的统一数据类型:当前部分分支返回STRING类型(比如T2.CD、T3.VAL),而满足条件时返回的['F','M']是ARRAY<STRING>类型,两种类型无法自动转换,导致报错。

修正后的SQL语句

根据需求,我们需要把所有分支的返回值统一为ARRAY<STRING>类型,将原本的字符串值包装成单元素数组即可:

SELECT 
  CASE 
    WHEN T2.val IS NOT NULL THEN [T2.CD] 
    ELSE 
      CASE 
        WHEN T3.VAL <> '~' OR T3.VAL = 'FM' THEN ['F','M'] 
        ELSE [T3.VAL] 
      END 
  END AS FVAL 
FROM (SELECT * FROM TABLE3) T3 
LEFT JOIN (SELECT * FROM TABLE2) T2 ON T2.VAL = T3.VAL;

说明

  • 把T2.CD改为[T2.CD],将单个字符串转为单元素数组
  • 把ELSE T3.VAL改为ELSE [T3.VAL],同样将单个字符串转为单元素数组
  • 现在所有CASE分支的返回类型都是ARRAY<STRING>,类型统一后即可正常执行

内容的提问来源于stack exchange,提问作者user23424529

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:18:09