【发布时间】:2014-09-25 10:00:07
【问题描述】:
我正在使用存储过程在我的数据库中搜索并过滤参数的结果,我需要过滤未知的多个参数。
如何编写一个存储过程来处理这个问题?
这是我的存储过程:
CREATE PROCEDURE ComplaintRefListOnDistrict
@District nvarchar(max) = ''
AS
BEGIN
SET NOCOUNT ON;
SELECT
ComplaintFullID, CustomerName, Customer_Address, CustomerEmail,
Date, ContractID, CustomerPhoneNumber,ID, Complaintreference_ID, State
FROM
dbo.ComplaintsSmartObject
LEFT JOIN
dbo.UsersDistricts ON dbo.UsersDistricts.District = dbo.ComplaintsSmartObject.District
WHERE
(dbo.UsersDistricts.District = @District)
END
GO
谢谢!
【问题讨论】:
-
你的意思是,如果@District 包含“dist1,dist2”怎么办,如何根据它得到结果?
-
存储过程中的参数是指输入/输出参数。就像你的情况一样
@District是输入参数。当您说多个参数时,我相信您的意思是 @District 中的多个未知值。如果这是正确的,那么请分享您希望传递给这个存储过程的字符串。 -
正如@ArindamNayak 所说,如果我的输入参数“@District”不止一个值怎么办?
-
@MostafaAb ,我将为这个特定的事情发布解决方案 - 不止一个值,您需要使用动态 SQL 来实现这一点。
-
@MostafaAb ,很抱歉回复晚了,但是您可以查看我的答案,这很简单,无需创建第二个函数来获取拆分值。
标签: sql sql-server stored-procedures