我将参数传递给存储过程。其中一个参数是varchar(50)
,可以是类似" > 5000"
和" <= 10000"
的字符串。包含运算符的SQL条件语句
下面是一些代码:
....
....
@colourid int = 0,
@regionid int = 0,
@sellingPrice varchar(50) = '-1'
AS
SELECT
....
....
WHERE
(dbo.tbl_Listings.fld_ColourID = CASE WHEN @colourid = 0 THEN dbo.tbl_Listings.fld_ColourID ELSE @colourid END)
AND (dbo.tbl_Listings.fld_RegionID = CASE WHEN @regionid = 0 THEN dbo.tbl_Listings.fld_RegionID ELSE @regionid END)
AND
如何添加@sellingPrice
到哪里办理?我无法模仿int参数的做法,因为它并不总是使用=
。我需要说“如果卖价不是-1,那么fld_SellingPrice @ sellingPrice”。
+1避免了动态SQL。 –