查询返回全部或部分位值在我的数据库中,我有一个雇员表,其中包含一个名为EmployeeType的类型位列。我有一个网站,基于此显示员工的各种报告。通过参数
一份报告应该包括EmployeeType=1
,另一份EmployeeType=0
,第三份报告应该包括所有员工,而不管他们的EmployeeType。
我希望能够使用一个存储过程并传递一个EmployeeType变量。我想我可以做到以下几点,并传递0,1,2(EmployeeType1为0,1 EmployeeType0为1,所有EmployeeTypes为2)。
WHERE (Employee.EmployeeType <> @EmployeeType)
但是,当我通过0或1以外的任何东西时,我只是返回EmployeeType = 0。
我猜这是因为2是无效的位类型。我想知道是否有办法我可以做我在找的东西,或者如果我唯一的选择是将EmployeeType更改为诸如int之类的东西,或者创建两个单独的存储过程(其中一个具有上面列出的WHERE子句和一个没有它)。
如果你看看你上面我会看到EmployeeType为0的EmployeeType为0的原因,因为我没有使用= =运算符,而是使用<>。你的两个例子都没有工作。使用您在此处列出的内容时,我将EmployeeType = 1传递给变量,而不是所有员工,而不管类型。 – aantiix
@ doby48你可以修改我提供的sql小提琴来复制你的问题吗?它在小提琴中运作良好。 – paqogomez
此外,我认为你在这里滥用位类型。当你有第三类员工时会发生什么?通常参考表用于这种类型的问题。案例陈述在大多数情况下仍然适用。 – paqogomez