У меня есть хранимая процедура, которая принимает 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работает, когда статус равен нулю, но не когда статус является строкой.Я неправильно использую разделение?Или при изменении типа выбранные данные работают иначе?