У меня есть параметры, внесённые в переменные, каждый из них может быть пустым вплоть до того, что лишь одна переменная будет заполнена параметром. Как можно реализовать поиск по базе данных только не пустыми переменными, а пустые пропускать? Поиск по бд я реализую сам, а вот как сделать так, чтобы пустые переменные не использовались в нём, я не знаю. Не писать же к каждому условию ещё по 11 условий
WHERE (@SertificatNomer IS NULL OR SertificatNomer = @SertificatNomer) AND (@DateOfRelease IS NULL OR DateOfRelease = @DateOfRelease) ... SQL WHERE (@SertificatNomer IS NULL OR SertificatNomer = @SertificatNomer) AND (@DateOfRelease IS NULL OR DateOfRelease = @DateOfRelease) ...
Minin_inactive4471240, просто переведи на русский - условие выбора если (параметр @SerificatNomer пустой или поле SertificatNomer равно параметру @SertificatNomer) и (....) Смотри, возьмём для простоты одно поле A и один параметр @A - ты хочешь выбрать те строчки из таблицы у которых поле A равно параметру @A, но только в том случае если параметр @A не пустой - если перефразировать это условие в более "программисткий" язык то ты хочешь выбрать строку если параметр @A пустой без всяких доаполнительных проверок то есть одно из условий это "@A IS NOT NULL" теперь остался вопрос что делать если параметр не пустой - тогда его надо сравнить с полем "A = @A" и ты хочешь это строчку если выполниться или первое условие или второе - получится "@A IS NOT NULL OR A = @A" теперь усложним - что если поля 2? для второго поля нужно будет точно такое же условие "@B IS NOT NULL OR B = @B" и ты хочешь взять эту строчку только если и та и эта проверка прошла, то есть ты объеденяешь это через "И" - Проверка для A И Проверка для B, получится (@A IS NOT NULL OR A = @A) AND (@B IS NOT NULL OR B = @B)
vtlstolyarov, У меня 11 полей, эти условия написать в одном using или как-то разделять? и как реализовать вывод всего этого через Ридер?