ОБНОВЛЕНИЕ: Нам было сообщено, что возможно, что значения для обоих параметров не будут предоставлены. В таком случае не должно быть фильтра как для мобильного телефона, так и для адреса электронной почты.SQL: Условие, в котором условие не работает
Мне сложно определить, что не так с моим запросом. В принципе, у меня есть две переменные
@EmlAdd
@MblNum
То, что я хочу сделать, это поиск, используя следующие правила: по крайней мере, один из двух переменных должна иметь значение Если я только указать значение для адреса электронной почты, он должен игнорировать фильтр для мобильного номера Если я только указать значение для номера мобильного телефона, он должен игнорировать фильтр для адреса электронной почты
что происходит с моим решением до сих пор является то, что: , если значения для 2-х переменных поставлялись: эТО РАБОТАЕТ если только одна из переменных имеет значение: НЕ РАБОТАЕТ
DECLARE
@EmlAdd AS VARCHAR(100),
@MblNum AS VARCHAR(100)
SET @EmlAdd = ''
SET @MblNum = '5555555'
SELECT
USER_ID,
CONTACT_VALUE
FROM
TBL_CONTACTS
WHERE
(
(CONTACT_VALUE = @MblNum OR @MblNum = '')
OR
(CONTACT_VALUE = @EmlAdd OR @EmlAdd = '')
)
Любая помощь будет принята с благодарностью.
вы пробовали какой-либо из ответа дали ??Я думаю, что есть 2 ответа, которые я думаю правильно – Dhaval
Да, с небольшим количеством настроек, решение @ devart работало. –