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

BigQuery Sandbox支持CASE语句吗?执行时遇类型匹配错误求助

BigQuery Sandbox对CASE语句的支持及SQL报错排查解决

关于BigQuery Sandbox对CASE语句的支持

BigQuery Sandbox完全支持CASE语句,它是标准SQL的核心语法之一,Sandbox环境与正式BigQuery环境在SQL语法支持上没有差异,可正常使用CASE进行条件逻辑处理。

报错原因及解决方案

报错原因

报错信息:

No matching signature for operator CASE; all THEN/ELSE arguments must be coercible to a common type but found: BOOL, STRING; actual argument types (WHEN THEN) ELSE: (BOOL BOOL) STRING at [3:2]

问题出在CASE语句的返回类型不一致:

  • THEN分支的表达式name = 'Devdas Sloan'是布尔判断,返回TRUE或FALSE(布尔类型)
  • ELSE分支直接返回name字段,属于字符串类型

CASE语句要求所有分支返回的数据类型必须可转换为同一类型,类型不匹配就会触发该错误。

修正后的SQL

如果你的需求是将name为'Devadas Sloan'的记录替换为'Devdas Sloan',否则保留原名称,正确写法如下:

SELECT  
  customer_id, 
  CASE  
    WHEN name = 'Devadas Sloan' THEN 'Devdas Sloan' 
    ELSE name 
  END AS new_name 
FROM `valid-cell-380712.customer_table_gda.customer_table`

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:58:09