BigQuery нет соответствующей подписи при попытке отфильтровать строки на основе списка целых чисел - PullRequest
1 голос
/ 15 марта 2019

Я пытаюсь извлечь определенные строки, в которых столбец Code соответствует одному из целых чисел в списке:

SELECT DISTINCT *
FROM `detail_table`
WHERE Date BETWEEN '2019-03-12' AND '2019-03-15'
AND Code IN UNNEST([36516, 152])

Однако я получаю сообщение об ошибке:

google.api_core.exceptions.BadRequest: 400 Нет соответствующей подписи для оператора IN UNNEST для типов аргументов: STRING, ARRAY

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

1 Ответ

4 голосов
/ 15 марта 2019

Используйте ниже вместо

#standardSQL
SELECT DISTINCT *
FROM `project.dataset.detail_table`
WHERE `date` BETWEEN '2019-03-12' AND '2019-03-15'
AND Code IN UNNEST(['36516', '152'])  

ИЛИ

#standardSQL
SELECT DISTINCT *
FROM `project.dataset.detail_table`
WHERE `date` BETWEEN '2019-03-12' AND '2019-03-15'
AND CAST(Code AS INT64) IN UNNEST([36516, 152])   

ИЛИ даже просто (зависит от вашего случая)

#standardSQL
SELECT DISTINCT *
FROM `project.dataset.detail_table`
WHERE `date` BETWEEN '2019-03-12' AND '2019-03-15'
AND Code IN ('36516', '152')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...