Оператор SQL IN с подзапросом возвращает false, но оно должно быть истинным

У меня есть некоторые данные в Snowflake, и я использую веб-интерфейс для выполнения некоторых запросов.

У меня есть следующий запрос:

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')

Таким образом, в MY_TABLE которые имеют значение 'YHZ', А также, YHZ определенно в таблице AIRPORT_CODES_TABLE Таким образом, исходный запрос также должен возвращать некоторые результаты. Вот фрагмент AIRPORT_CODES_TABLE:

select IATA from AIRPORT_CODES_TABLE

Изображение таблицы YHZ в AIRPORT_CODES_TABLE

Что мне здесь не хватает? Я сослался на официальные документы, чтобы сделать мои запросы, так что это должно быть правильно.

1 ответ

Решение

Просто мысль, вы можете попробовать с помощью Trim функция

SELECT *
FROM MY_TABLE
WHERE Trim(AIRPORT_CODE) IN (
    SELECT Trim(IATA)
    FROM AIRPORT_CODES_TABLE
    )
Другие вопросы по тегам