Sql server 如何避免sqlserver中声明的变量出现空条件

Sql server 如何避免sqlserver中声明的变量出现空条件,sql-server,tsql,sql-server-2016,Sql Server,Tsql,Sql Server 2016,当传递一些值时,我得到了一些值 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), (

当传递一些值时,我得到了一些值

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传递null iam没有得到任何值如何检索,即使我们不传递如下内容

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

输出应为总计,表格应显示

。。。或者@id为空
非常感谢
declare @id varchar(100)=null
select * from #UserCompany where id in (select  CAST(value AS int)  FROM string_SPLIT(@id, ','))
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;