BigQuery `LIKE ANY` и `NOT LIKE ANY`

Попытайтесь понять поведение оператора ANY в BigQuery (см. также здесь

Следующий оператор возвращает, как и ожидалось, true:

SELECT 'a'      LIKE ANY ('b','%b%', 'b', 'a');
--true

По сути, это отвечает на вопрос, есть ли в шаблоне буква «а», да, это так!

Теперь инвертирование оператора также возвращает true:

SELECT 'a'  NOT LIKE ANY ('b','%b%', 'b', 'a');
-- true

В этом случае возникает вопрос: нет ли в шаблоне буквы «а», что является ложью, в шаблоне есть буква «а».

Может ли кто-нибудь помочь мне понять поведение BigQuery? Спасибо!

Читал документацию, в которой указано: ЛЮБОЙ: проверяет, содержит ли набор шаблонов хотя бы один шаблон, соответствующий искомому значению.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
446
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет, второй запрос спрашивает базу данных, есть ли в кортеже элементы, которые не являются

А так как их 3, то это правда.

То, что вы ищете, это NOT IN

NOT IN не поддерживает шаблоны. Одним из вариантов было бы использование подзапроса, но есть ли решение без подзапроса в предложенииwhere?
holzben 15.03.2024 09:32

Не в поддерживаемом тупело, вы конвертируете строку в кортеж stackoverflow.com/questions/58355001/…

nbk 15.03.2024 09:36

Я решил мою реальную проблему с помощью not like all, но приятно это знать. Спасибо

holzben 15.03.2024 09:44

Другие вопросы по теме