Оператор 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
Что мне здесь не хватает? Я сослался на официальные документы, чтобы сделать мои запросы, так что это должно быть правильно.
1 ответ
Решение
Просто мысль, вы можете попробовать с помощью Trim
функция
SELECT *
FROM MY_TABLE
WHERE Trim(AIRPORT_CODE) IN (
SELECT Trim(IATA)
FROM AIRPORT_CODES_TABLE
)