Скорее всего, у меня неправильный синтаксис, и я просто этого не осознаю. У меня есть таблица, которая определена следующим образом: - Получить все PatientVisitOID, для которых нам нужны данные DECLARE @VisitOID TABLE (...
1 ответ
NOT IN
с подзапросом настоятельно не рекомендуется, поскольку он ведет себя неожиданно, если любое значение в подзапросе равно NULL
. В вашем случае это приведет к тому, что никакие строки не будут удалены, и я думаю, что это ваша проблема.
Вместо этого попробуйте NOT EXISTS
:
DELETE pv
FROM @PatientVisitDataPRD pv
WHERE NOT EXISTS (SELECT 1
FROM @VisitOID v
WHERE v.PatientVisitOID = pv.PatientVisitOID
);
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.