2012-10-04 65 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