У меня есть функция проверки, которую я хотел бы запускать на каждом идентификаторе в таблице, и возвращать только те идентификаторы, которые являются недопустимыми. Код, который я пробовал:Выберите все записи, где функция ложна
select myID
from myDB.dbo.myTable
where (myDB.dbo.validateID(myID) = 0)
Где myDB.dbo.validateID это скалярная функция.
Это работает, но возвращает null для всех допустимых идентификаторов - я хочу только вернуть недействительные. Каков наиболее эффективный способ вернуть все недопустимые строки с помощью этой функции?
Update:
Функция validateID возвращает 1, если идентификатор является действительным, 0, если это не так.
Мой код выше возвращает null, если идентификатор действителен, а идентификатор - нет. Я хочу, чтобы он вместо этого возвращал неверные идентификаторы без всех нулевых результатов.
Как функция различает действительный и недопустимый идентификаторы на выходе? –
@Pradeep - он возвращает 1 для действительных, 0 для недействительных. Я обновлю сообщение – froadie
В этом случае ваш запрос должен работать нормально. –