複数の変数を渡し、複数のフィールドを比較する単一のテーブルに対して検索クエリを実行しています。このような:
WHERE a.callerfname LIKE @FName
AND a.callerlname LIKE @LName
AND a.callermname LIKE @MName
フィールドの1つに値が選択されていない場合、フォームは%を送信します。したがって、そのフィールドはすべての結果と一致します。
1つのフィールドはProjectID
、GUIDであり、値を含めることができるフィールドnull
です。プロジェクトが選択されていない状態で検索を取得すると、フォームは空白のGUID(000000-000 ...)を渡し、次のCASE
ようにチェックします。
AND a.projectid = CASE WHEN @ProjectId <> '00000000-0000-0000-0000-000000000000'
THEN @ProjectId
ELSE a.projectid
END
問題は、行にが含まれている場合、NULL ProjectID
それ自体と一致しないことです。私の質問は、GUIDフィールドのnull値は何に一致するのでしょうか?または、%と比較した場合の方法と名前がnullの場合、projectidにすべての値を返すようにするにはどうすればよいですか?