代码之家  ›  专栏  ›  技术社区  ›  Michael Yaworski

带子查询的SQL In运算符返回false,但应为true

  •  -1
  • Michael Yaworski  · 技术社区  · 6 年前

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

    我有以下问题:

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

    这将返回一个空结果。但是,在 MY_TABLE 应该归还。

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

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

    所以很明显 我的桌子 其值为 'YHZ' . 而且, YHZ 肯定在桌子上 AIRPORT_CODES_TABLE ,所以原始查询也应该返回一些结果。这是一段 机场代码表 :

    select IATA from AIRPORT_CODES_TABLE
    

    Table picture of YHZ in the AIRPORT_CODES_TABLE

    我这里缺什么?我提到过 the official docs 我的问题,所以应该是正确的。

    1 回复  |  直到 6 年前
        1
  •  2
  •   sniperd Ali Ahmed    6 年前

    只是一个想法你能用 Trim 功能

    SELECT *
    FROM MY_TABLE
    WHERE Trim(AIRPORT_CODE) IN (
        SELECT Trim(IATA)
        FROM AIRPORT_CODES_TABLE
        )
    
    推荐文章