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

BigQuery查询报错:无法执行IN子查询,STRING与INT64类型不兼容

问题排查与解决

错误原因

报错 Cannot execute IN subquery with uncomparable types STRING and INT64 at [7:3] 的核心原因是字段类型不匹配:

  • bigquery-public-data.new_york_citibike.citibike_stations 表中的 station_id 是 STRING 类型
  • bigquery-public-data.new_york_citibike.citibike_trips 表中的 start_station_id 是 INT64 类型
    IN 子查询要求两边用于匹配的字段类型必须完全一致,类型不兼容时无法执行比较逻辑。

解决办法

只需将其中一侧的字段类型转换为与另一侧一致即可,以下是两种可行方案:

方案1:将子查询中的start_station_id转为STRING类型

SELECT
  station_id,
  name
FROM 
  bigquery-public-data.new_york_citibike.citibike_stations
WHERE
  station_id IN
  (
    SELECT
      CAST(start_station_id AS STRING)
    FROM
      bigquery-public-data.new_york_citibike.citibike_trips
    WHERE
      usertype = 'Subscriber'
  )

方案2:将主查询中的station_id转为INT64类型

SELECT
  station_id,
  name
FROM 
  bigquery-public-data.new_york_citibike.citibike_stations
WHERE
  CAST(station_id AS INT64) IN
  (
    SELECT
      start_station_id
    FROM
      bigquery-public-data.new_york_citibike.citibike_trips
    WHERE
      usertype = 'Subscriber'
  )

注意:如果station_id存在无法转换为整数的异常值,方案2可能会报错,此时优先选择方案1更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:02:04