Попытайтесь понять поведение оператора ANY в BigQuery (см. также здесь
Следующий оператор возвращает, как и ожидалось, true:
SELECT 'a' LIKE ANY ('b','%b%', 'b', 'a');
--true
По сути, это отвечает на вопрос, есть ли в шаблоне буква «а», да, это так!
Теперь инвертирование оператора также возвращает true:
SELECT 'a' NOT LIKE ANY ('b','%b%', 'b', 'a');
-- true
В этом случае возникает вопрос: нет ли в шаблоне буквы «а», что является ложью, в шаблоне есть буква «а».
Может ли кто-нибудь помочь мне понять поведение BigQuery? Спасибо!
Читал документацию, в которой указано: ЛЮБОЙ: проверяет, содержит ли набор шаблонов хотя бы один шаблон, соответствующий искомому значению.


Нет, второй запрос спрашивает базу данных, есть ли в кортеже элементы, которые не являются
А так как их 3, то это правда.
То, что вы ищете, это NOT IN
Не в поддерживаемом тупело, вы конвертируете строку в кортеж stackoverflow.com/questions/58355001/…
Я решил мою реальную проблему с помощью not like all, но приятно это знать. Спасибо
NOT INне поддерживает шаблоны. Одним из вариантов было бы использование подзапроса, но есть ли решение без подзапроса в предложенииwhere?