BigQuery /我无法使用“ in”子句正确得出结果

时间:2019-06-27 14:44:15

标签: sql google-bigquery

我要提取完全匹配的数据,而不是部分匹配的数据。
但是,如果执行以下sql代码,则无法提取它们:

我估计此sql代码未提取任何数据,但这将提取所有数据行。

【SQL代码】

WITH a AS(
    SELECT
        001 AS id_a,
        112345678901234567 AS x
    UNION ALL
    SELECT
        002,
        112345678901233567
    UNION ALL
    SELECT
        003,
        112345678901232568
),
comp_a AS(
    SELECT
        *
    FROM
        a
    WHERE
        x IN(112345678901234000, 112345678901233000, 112345678901232000)
),
comp_b AS(
    SELECT
        004 AS id_b
    UNION ALL
    SELECT
        005
)
SELECT
    id_a,
    id_b
FROM
    comp_a
    LEFT OUTER JOIN
        comp_b
    ON  (
            comp_a.id_a = comp_b.id_b
        )
WHERE
    comp_b.id_b IS NULL
;

我认为“ in”子句用于完美匹配。 但是,也许,我认为此sql代码不是在“ in”子句中执行,而是在“ like”子句中执行。

很高兴您回答我的问题的解决方案。

■进一步说明:
・删除了浏览器以及Bigquery的现金。但是我解决不了
・该sql代码为示例代码,因为我无法公开真实的sql代码。
  ・能在BigQuery的一个环境中重现此问题,
    但我无法在BigQuery的其他环境中重新创建。
    此问题可能不是sql代码问题,而是环境问题
    或设置。

1 个答案:

答案 0 :(得分:0)

谢谢您回答我的问题。

我解决了我的问题。 我的问题的原因不是BigQuery,而是Excel的格式。

详细信息: 我尝试使用Excel检查数据,因为结果包含大量数据。 遗憾地讲,由于Excel的格式是数字的类型,数量的数据的一部分被倒圆。所以我把正确的结果误解为错误的结果。

对不起,我误会了。