Изменение данных, поступающих в хранимую процедуру, с int на строку. Как разделить данные с разделителями на набор целых чисел и выполнить фильтр? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть хранимая процедура, которая принимает 4 переменные и фильтрует данные на их основе.Одна из переменных изменена с int на varchar.Теперь varchar должен выполнить фильтр, который сделал int.

попытался использовать статус как varchar и использовать функцию разбиения и получил ошибку.

Существующий код:

ALTER PROCEDURE [dbo].[PROCNAME]
@IDorder as bigint,
@countofresult int = 5
@Ordering INTEGER,
@Status varchar = '1,2', -- this was accepting one int but now accepts a varchar
as
begin
select top (@countofresult) * from table1 inner join table2 on table1.orderstatus=table2.orderstatusprocess
where 
fkl_id = @IDorder
and 
table1.statusID=@status
table1.statusID in (select data from split(@Status,',')) or (@Status is null))  
order by
case when @Ordering = 0 then priceVal end asc 
case when @ordering =1 then priceVal end desc
end

Thisработает, когда статус равен нулю, но не когда статус является строкой.Я неправильно использую разделение?Или при изменении типа выбранные данные работают иначе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...