2012-09-06 19 views
3
create Procedure Proc_selectEmp 
(
@name varchar(10) = null, 
@lname varchar(10) = null, 
@id varchar(10) = null 

) 
as 
begin 

select * from Emp 
where 
(@name is null or name = @name) 
and (@lname is null or lname = @lname) 
and (@id is null or id = @id) 
end 

我的基本查詢:select * from Emp。如果用戶輸入名稱,它將被添加和查詢將是:如果所有/一個參數都爲空?

select * 
from Emp 
where name = txtname.Text 

這是我的sp。它處理得當。

是否有任何其他選項使用isnull()case

+0

必讀關於這一主題http://www.sommarskog.se/dyn-search-2008.html –

回答

2

如何像

where ISNULL(@name,name) = name 
and  ISNULL(@lname,lname) = lname 
and  ISNULL(@id,id) = id 
相關問題