我有一个表值函数,需要三个参数。
如果任何传入的参数是空白,我需要将参数分配给null
。如果条件在函数中,请任何人都可以告诉我如何/在哪里可以放置以下内容。
IF @CLIENTPK_NEW = ''
BEGIN
@CLIENTPK_NEW=NULL
END
IF @CGNEEPK= ''
BEGIN
@CGNEEPK=NULL
END
CREATE FUNCTION Function_test
(
@CLIENTPK_NEW varchar(50),
@CGNEEPK varchar(50),
@type varchar(100)
)
RETURNS TABLE
AS
RETURN
SELECT COl1,COl2
FROM Table1
where COL1 is not null AND
(@CLIENTPK_NEW IS NULL OR COL1 =@CLIENTPK_NEW ) AND
(@CGNEEPK IS NULL OR COL2 =@CGNEEPK)
答案 0 :(得分:1)
您可以使用NULLIF:
SELECT COl1,COl2
FROM Table1
where COL1 is not null AND
(NULLIF(@CLIENTPK_NEW, '') IS NULL OR COL1 = NULLIF(@CLIENTPK_NEW, '') ) AND
(NULLIF(@CGNEEPK, '') IS NULL OR COL2 = NULLIF(@CGNEEPK, ''))
但是,如果这是来自your previous question的后续内容,请在此处查看我的答案,因为我认为您不需要此解决方法,如果这是我在那里展示的特定问题的来源,您可以直接传入NULL。