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

BigQuery中UPPER函数与NOT IN无法正确过滤结果问题排查

问题分析与解决

你的查询逻辑存在大小写不匹配的问题:

  • 你对fieldId使用了UPPER()函数转成大写,但IN子句里的是原大小写的'Debit'、'Unknown'、'Credit'。
  • 转成大写后的字段值(比如'DEBIT')和IN里的字符串完全不匹配,所以所有记录都被判定为“不在列表中”,最终返回了全部三个有效值。

修正后的查询方案

方案一:将IN子句中的字符串也转为大写

SELECT fieldId as outlier
FROM datasetId.tableId
WHERE UPPER(fieldId) NOT IN ('DEBIT', 'UNKNOWN', 'CREDIT');

方案二:去掉UPPER函数(如果fieldId字段值大小写统一)

如果你的fieldId字段值本身就是严格的'Debit'、'Unknown'、'Credit'格式,没有大小写混乱,可以直接去掉UPPER():

SELECT fieldId as outlier
FROM datasetId.tableId
WHERE fieldId NOT IN ('Debit', 'Unknown', 'Credit');

额外建议:检查字段是否存在空格或特殊字符

如果修正后仍有异常,建议检查fieldId字段是否存在前后空格或不可见特殊字符,可以用TRIM()函数辅助排查:

SELECT fieldId as outlier, TRIM(fieldId) as trimmed_field
FROM datasetId.tableId
WHERE TRIM(UPPER(fieldId)) NOT IN ('DEBIT', 'UNKNOWN', 'CREDIT');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 06:09:20