1

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

当我执行这个存储过程时:

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

go

我没有得到任何结果。

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

4

1 回答 1

4

这不是因为它是一个二进制列,而是因为null在 SQL 中不应该与任何东西进行比较。本质上,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
于 2012-10-04T23:07:45.307 回答