1

バイナリ値を持つ行をフィルタリングし、バイナリ列で null でない行のみを返す必要があるストアド プロシージャがあります。

このストアド プロシージャを実行すると、次のようになります。

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

go

結果が出ません。

このスクリプトを変更して、バイナリ列に null 値を持つ行を返すにはどうすればよいですか?

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 に答える