bigquery MERGE DML с коррелированным подзапросом - PullRequest
0 голосов
/ 18 октября 2018

Можно ли иметь коррелированный запрос (подзапрос внутри одного из предложений WHEN в MERGE), используя MERGE DML в bigQuery?

См., Например, адаптированный запрос, который я нашел для поиска в Google для 'MERGE WHENНЕ СОГЛАСОВАНО ИСТОЧНИКОМ УДАЛЕНИЯ 'ниже.Обратите внимание на два SELECTS внутри предложений WHEN:

MERGE Target1 AS T
USING Source1 AS S
ON (T.label_id = S.label_id) 
WHEN NOT MATCHED BY TARGET AND S.project_name IN (SELECT DISTINCT(project_name) FROM Source1) 
    THEN INSERT(attr1, attr2) VALUES(S.attr1, S.attr2)
WHEN MATCHED 
    THEN UPDATE SET T.attr1 = S.attr1
WHEN NOT MATCHED BY SOURCE AND T.project_name IN (SELECT DISTINCT(project_name) FROM Source1)
    THEN DELETE  ;

Как это можно сделать в bigQuery?Нужно ли изменять из моего запроса выше?В настоящее время я получаю: Correlated subquery is unsupported in WHEN clause.

1 Ответ

0 голосов
/ 18 октября 2018

К сожалению, подзапросы в предложении WHEN не поддерживаются для операторов MERGE в BigQuery.

Существует запрос функции с аналогичным сценарием и обходной путь , который может быть полезен для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...