2012-10-04 37 views
1

我有一个存储过程,我需要筛选具有二进制值的行,并只返回二进制列中不为空的行。如何在T-SQL select语句中加入“where [binary]不为空”?

当我执行该存储过程:

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

go 

我没有得到任何结果。

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

+0

这个议题的权利一直 – RichardTheKiwi

回答

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 
+0

该诀窍回答!谢谢,dasblinkenlight。 – Bazinga