SQL Server模数和用户定义函数

SQL Server模数和用户定义函数,sql,Sql,我在函数中使用了模数%,但它的行为与我预期的不同: drop function af_EmployeeName go Create function [dbo].[af_EmployeeName] ( @ParamName VARCHAR(512) , @ParamRef1 VARCHAR(64) , @ParamRef2 VARCHAR(64) , @ParamRef3 VARCHAR(64) , @ParamRef VARCHAR(64) , @ParamNI VARCHAR(

我在函数中使用了模数%,但它的行为与我预期的不同:

drop function af_EmployeeName
go

Create function [dbo].[af_EmployeeName]    
(  
@ParamName VARCHAR(512)
, @ParamRef1 VARCHAR(64)
, @ParamRef2 VARCHAR(64)
, @ParamRef3 VARCHAR(64)
, @ParamRef VARCHAR(64)
, @ParamNI VARCHAR(64)
, @ParamIsEmplRef INT
)  
RETURNS VARCHAR(1100)
AS 
BEGIN  

RETURN  

COALESCE(@ParamName, '')

+ CASE 
    WHEN @ParamIsEmplRef <> 0 THEN
        ': '
    ELSE
        ''
    END

+ CASE 
    WHEN @ParamIsEmplRef&2 <> 0  THEN --1
        COALESCE(@ParamRef1 , '') + ', '
    ELSE
        ''
    END
 END

GO

SELECT dbo.af_EmployeeName('Name','ref1','ref2','ref3', 'payref', 'ni', 0) [0]
    , dbo.af_EmployeeName('Name','ref1','ref2','ref3', 'payref', 'ni', 1) [1]
    , dbo.af_EmployeeName('Name','ref1','ref2','ref3', 'payref', 'ni', 2) [2]
给予

0112 0110


请把我从痛苦中解救出来。

这是一个打字错误,我已经看了一天中最好的部分。

您有按位&-@ParamIsEmplRef&2。。。不是胡奥,他们正在举办500场演出。谢谢Alex-我也会接受你的回答。。。
SELECT 0%2 [0],  1%2 [1], 2%2 [2]