У меня есть хранимая процедура, в которой мне нужно реализовать условие WHERE
.Как сделать условие в хранимой процедуре SQL Server
У меня есть параметр @name
, @startdate
и @enddate
параметров.
Как я могу писать условие:
- если таковые
@name is null
и@startdate
&@enddate
Дан затем возвращают данные для диапазона дат. - если
@name
дается и@startdate
&@enddate is null
затем возвращают данные для имени - если
@name
и@startdate
&@enddate
дается затем возвращают данные где имя и диапазон дат будут оценены
Вот мой текущий процедура
alter procedure dbo.sp_emp
@name varchar(50),
@startdate date,
@enddate date
as
begin
select *
from employee
where
Name = @name
and dob between @startdate and @enddate
end
отредактировать свой вопрос, чтобы сделать его немного более понятным для всех. Если я неверно истолковал ваш смысл, исправьте это. – scsimon
Примечание: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –