В моей хранимой процедуре есть параметр ввода. например,условие в где предложение с необязательным параметром
DECLARE @fromDate DateTime = NULL
DECLARE @toDate DateTime = NULL
DECLARE @Id int = NULL
Я хочу написать условие в том, где положение как ... если обеспечивается FromDate то поиск должен быть сделан на @fromDate. если @fromDate не предусмотрено, то проверьте @Id переменной, если это не является нулевым, то искать основание на @Id ...
Что-то вроде ...
where
CASE
when @fromDate is not null
THEN (@FromDate is null or ([Created] between @FromDate and @ToDate))
ELSE (@requestId is null or [email protected])
есть одна проблема ниже решения. ..if @fromDate и @Id оба предоставлены, тогда это будет их интуитивно, и ничего не будет возвращено ..... условие должно быть похоже ... если @fromDate присваивается приоритет, он дает @fromDate, даже если @Id является при условии, и результат не должен зависеть от параметра @Id ....
Почему вы хотите * Поддержка * возможность передавать ненулевым ' @ fromDate' и '@ Id', но затем * игнорировать * один из них? Если бы я называл вашу процедуру и передавал значения для обоих из них, я, конечно, не ожидал, что она будет делать то, что вы описываете. –
Во всяком случае, обычным местом для поиска чего-то подобного является [Динамические условия поиска в T-SQL] Эрланда Соммарскога (http://www.sommarskog.se/dyn-search.html) –