SQL IN operator with subquery returns false,但它应该是 true

SQL IN operator with subquery returns false, but it should be true

我在 Snowflake 中有一些数据,我正在使用 Web 界面来 运行 一些查询。

我有以下查询:

select * from MY_TABLE
where AIRPORT_CODE in (select IATA from AIRPORT_CODES_TABLE)

这 return 是一个空结果。但是,MY_TABLE 中的某些值应 returned。

如果我只创建以下测试查询,我实际上会得到一些结果:

select * from MY_TABLE
where AIRPORT_CODE in ('YHZ')

所以 MY_TABLE 中显然有行的值为 'YHZ'。而且, YHZ 肯定在 table AIRPORT_CODES_TABLE 中,所以原始查询也应该 return 一些结果。这是 AIRPORT_CODES_TABLE 的片段:

select IATA from AIRPORT_CODES_TABLE

我在这里错过了什么?我参考了 the official docs 进行查询,所以它应该是正确的。

只是一个想法,你可以尝试使用 Trim 函数

SELECT *
FROM MY_TABLE
WHERE Trim(AIRPORT_CODE) IN (
    SELECT Trim(IATA)
    FROM AIRPORT_CODES_TABLE
    )