Пожалуйста, создайте ниже функцию на сервере Sql
CREATE FUNCTION [dbo].[SplitColor] (@InStr VARCHAR(MAX))
RETURNS @TempTab TABLE
(ColorCode Varchar(50) not null)
AS
BEGIN
;-- Ensure input ends with comma
SET @InStr = REPLACE(@InStr + ',', ',,', ',')
DECLARE @SP INT
DECLARE @VALUE VARCHAR(1000)
WHILE PATINDEX('%,%', @INSTR ) <> 0
BEGIN
SELECT @SP = PATINDEX('%,%',@INSTR)
SELECT @VALUE = LEFT(@INSTR , @SP - 1)
SELECT @INSTR = STUFF(@INSTR, 1, @SP, '')
INSERT INTO @TempTab(ColorCode) VALUES (@VALUE)
END
RETURN
END
Пожалуйста, убедитесь, что передаваемая строка заканчивается одной запятой
Ваша хранимая процедура нуждается в некоторой модификации
ALTER PROCEDURE [dbo].[getWproductByColor]
@sprize int,
@eprize int,
@color char(50)
as
BEGIN
select mid,LTRIM(RTRIM(mtype))as mtype,LTRIM(RTRIM(mname))as
mname,LTRIM(RTRIM(mdetails))as mdetails,LTRIM(RTRIM(mcode))as
mcode,LTRIM(RTRIM(mcolor))as mcolor,msize,LTRIM(RTRIM(mctype)) as
mctype,convert(date,mdate)as mdate,mdprize,mprize,mcount,mimg1,mimg2,mimg3
from [dbo].[material]
where mtype='women' and
(mdprize between @sprize AND @eprize) and
(mcolor IN (SELECT * FROM SplitColor(@color)))
order by mdprize asc;
END