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

Tableau中使用CASE IN列表匹配product_id过滤报语法错误如何解决

计算字段CASE语句正确写法及报错排查

你写的CASE语句本身符合标准SQL语法规范,报错通常是使用的数据库/BI工具对计算字段的格式、字段类型匹配有特殊要求,可按以下方案调整:

核心注意点

  • 先确认product_id的字段类型:如果是数值型,IN列表里的ID不需要加单引号,类型不匹配是最常见的报错原因
  • 大部分计算字段要求为新建字段指定别名,缺少别名也会触发语法报错
  • 原代码IN列表中的重复ID不会引发语法错误,但可提前去重优化,避免部分工具对IN列表长度的限制

对应写法

情况1:product_id为字符串类型

CASE
  WHEN product_id IN ('31049','31048','26166','27816','26031','28861','28864','28863','28203','28110','20641','38112','45174','20645','28404','20646','20648','26159','33287','31417','40551','41020','40550','40553','40554','29804','29941','31430','33354','36730','26073','31432','31433','31431','38154','38166','26029','28341','45138','38069','42069','26060','33886','28392','29518','44879','20651','20655','42914','37535','28031','27588','29297','37688','37709','29551','30183','29550','26187','29549','41348')
  THEN '1'
  ELSE '0'
END AS is_target_product

情况2:product_id为数值类型

如果需要返回数值型标记方便后续聚合计算,也可以去掉返回值1、0的单引号:

CASE
  WHEN product_id IN (31049,31048,26166,27816,26031,28861,28864,28863,28203,28110,20641,38112,45174,20645,28404,20646,20648,26159,33287,31417,40551,41020,40550,40553,40554,29804,29941,31430,33354,36730,26073,31432,31433,31431,38154,38166,26029,28341,45138,38069,42069,26060,33886,28392,29518,44879,20651,20655,42914,37535,28031,27588,29297,37688,37709,29551,30183,29550,26187,29549,41348)
  THEN 1
  ELSE 0
END AS is_target_product

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:27:04