如何在T-SQL select语句中合并“where [binary] not null”?

时间:2012-10-04 23:05:33

标签: sql sql-server

我有一个存储过程,我需要过滤具有二进制值的行,并且只返回二进制列中不为空的行。

执行此存储过程时:

create procedure sp_GetGraduatingStudentDataByYear
(
    @year nvarchar(4)
)
as
select * from Cohort_Graduation_Student_Data where Exp_Grad_Year = @year and Off_Track != null

go

我没有结果。

如何更改此脚本以返回二进制列中具有空值的行?

1 个答案:

答案 0 :(得分:4)

这不是因为它是二进制列,而是因为SQL中的null不应该与任何东西进行比较。基本上,Off_Track != null条件会过滤掉所有行 - column = nullcolumn != null的所有检查始终都会评估为false

改为使用is not null

select *
from Cohort_Graduation_Student_Data
where Exp_Grad_Year = @year and Off_Track is not null