Скорее всего, у меня неправильный синтаксис, и я просто этого не осознаю. У меня есть таблица, которая определена следующим образом: - Получить все PatientVisitOID, для которых нам нужны данные DECLARE @VisitOID TABLE (...

0
MCP_infiltrator 3 Мар 2021 в 19:06

1 ответ

Лучший ответ

NOT IN с подзапросом настоятельно не рекомендуется, поскольку он ведет себя неожиданно, если любое значение в подзапросе равно NULL. В вашем случае это приведет к тому, что никакие строки не будут удалены, и я думаю, что это ваша проблема.

Вместо этого попробуйте NOT EXISTS:

DELETE pv
    FROM @PatientVisitDataPRD pv
    WHERE NOT EXISTS (SELECT 1
                      FROM @VisitOID v
                      WHERE v.PatientVisitOID = pv.PatientVisitOID
                     );
2
Gordon Linoff 3 Мар 2021 в 16:11