1
我有一個存儲過程,我需要在其中實現條件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_'前綴。微軟已經保留了這個前綴以供自己使用(參見*命名存儲過程*)](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_'並將其他內容用作前綴 - 或者根本沒有前綴! –