как избежать нулевого условия в объявленной переменной в sqlserver - PullRequest
0 голосов
/ 19 сентября 2018
CREATE TABLE #UserCompany
    ([ID] int, [CustId] varchar(2), [CustName] varchar(1), [Status] int)
;

INSERT INTO #UserCompany
    ([ID], [CustId], [CustName], [Status])
VALUES
    (1, 'a1', 'A', null),
    (2, 'a1', 'A', null),
    (3, 'a2', 'B', null),
    (4, 'a3', 'B', null),
    (5, 'a4', 'C', null),
    (6, 'a4', 'C', null),
    (7, 'a4', 'D', null),
    (8, 'a6', 'E', null)
;select * from #UserCompany

при передаче некоторого значения iam получает значения

declare @id varchar(100)='1,2'
select * from #UserCompany where id in (select  CAST(value AS int)  FROM string_SPLIT(@id, ','))

если iam передает значение null iam не получает никакого значения, как получить, даже если мы не передаем ничего, как показано ниже

declare @id varchar(100)=null
select * from #UserCompany where id in (select  CAST(value AS int)  FROM string_SPLIT(@id, ','))

вывод должен быть в общей таблице должен отображаться

1 Ответ

0 голосов
/ 19 сентября 2018
declare @id varchar(100)='1,2'

select * 
from #UserCompany 
where id in (select  CAST(value AS int)  FROM string_SPLIT(@id, ','))
   OR @id IS NULL;
...