[英]SQL StoredProcedure with non required parameters
在我的應用程序中,我有一個包含一些過濾器字段的表單。 不需要任何內容,如果用戶確實輸入了值,則需要在where子句中將其作為參數提供。
我不知道如何在存儲過程中處理此問題。
例如以下存儲過程:
--parameters
@customername varchar(50),
SELECT * from ORDERS
WHERE customername = @customername
因此,如果用戶輸入客戶名,那么它當然會返回該客戶名的所有內容,如果用戶未輸入用戶名,則需要返回所有內容。 如何在此聲明中執行此操作? 如果用戶未輸入客戶名稱,是否可以通過通配符? 還是我需要一個單獨的程序。 我希望這是有道理的,謝謝!
嘗試這個
--parameters
@customername varchar(50) = NULL,
SELECT * from ORDERS
WHERE customername = COALESCE(@customername, customername)
根據您需要返回null的客戶名的注釋,這與Russ'集成在一起。
SELECT * from ORDERS
WHERE (customername = COALESCE(@customername, customername)
OR customername IS NULL)
SELECT * from ORDERS
WHERE customername = @customername or @customername is null
請參閱此鏈接,以了解一些想法以及使用條件where語句的不同方法的利弊:
您可以在存儲的過程中編寫if語句。 像這樣。
IF @customername is null
BEGIN
SELECT * FROM ORDERS
END
ELSE
BEGIN
SELECT * FROM ORDERS WHERE customername = @customername
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.