1
我的表:進行高級搜索存儲過程
CR_DETAILS
CR_REF_NO VARCHAR(60), ORIGIN_ID INT, DATE_RECEIVED DATETIME, STATUS_ID INT
我想開發一個存儲過程返回高級搜索結果:
存在着與上述有關領域的搜索頁面在上表中。用戶可以填寫儘可能多的列。
對於上述表中,寫入的存儲過程,一些要求也有象下面這樣: 存在一個下拉列表相對DATE_RECEIVED
字段(<,>,=)選項。
用戶對DATE_RECEIVED
字段輸入一些值,他可以選擇運營商。然後搜索結果應該滿足上述條件。
任何人都可以請我建議我該怎麼做?
截至目前,我寫了下面的存儲過程,但不工作:(
ALTER PROCEDURE usp_AdvancedSearchCR
@CR_REF_NO VARCHAR(35),
@ORIGIN_ID INT,
@DATE_RECEIVED DATETIME,
@DATE_RECEIVED_COMPARE_STYLE CHAR,
@STATUS_ID INT
AS
BEGIN
SELECT * FROM CR_DETAILS WHERE
((CR_REF_NO LIKE '%' + @CR_REF_NO + '%') OR (CR_REF_NO IS NULL)) AND
((ORIGIN_ID = @ORIGIN_ID) OR (@ORIGIN_ID = 0)) AND
--I am not understanding how to write code for DATE_RECEIVED
((STATUS_ID = @STATUS_ID) OR (@STATUS_ID = 0))
END
在測試存儲過程,我也沒有輸入任何DATE_RECEIVED
價值和測試,但我沒有得到。任何結果因此我明白,我的其他代碼也是錯誤的
請給我建議,這對我來說是迫切
PHew - 這個存儲過程將**不**具有很好的性能 - 這是肯定的! –
請閱讀聖經:http://www.sommarskog.se/dyn-search.html對不起,您必須選擇您的SQL Server版本,因爲您沒有在問題中指定它。 –