2014-04-25 113 views
0

我有一個搜索查詢,我需要從我的表中拉出一些記錄。有4個領域,你可以搜索:deliveryDate,dueDate,員工,狀態使用TSQL創建搜索查詢

我需要弄清楚如何創建一個搜索結果將包括任何一條信息。

它會在where子句中使用OR運算符嗎?

WHERE A.[status] = @statusSearch 
    OR A.[dueDate] = @dueDateSearch 
    OR A.[deliveryDate] = @deliverDateSearch 
    OR A.[empID] = @empSearch 
+3

該查詢看起來很好。 – anycard

+0

當輸入多個過濾條件時會發生什麼? – user2989408

+0

我只是想要它拉取任何記錄,這些記錄具有在選項搜索字段中輸入的信息。 – SBB

回答

0

如果輸入參數是可選的,那麼你就需要使用不同的邏輯,只有當提供其他有效的數據,將接受搜索輸入也不會考慮輸入濾波器

WHERE 

(
A.[status] = @statusSearch 

OR 

@statusSearch = '' 

) 

AND 

(

A.[dueDate] = @dueDateSearch 

OR 

@dueDateSearch = '' 

) 

AND 

( 

A.[deliveryDate] = @deliverDateSearch 

OR 

@deliverDateSearch = '' 

) 

AND 

(

A.[empID] = @empSearch 

OR 

@empSearch = '' 

)