内联表值函数中的变量

时间:2010-09-24 08:16:42

标签: sql sql-server

我有一个表值函数,需要三个参数。

如果任何传入的参数是空白,我需要将参数分配给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)

1 个答案:

答案 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。