代わりに条件をこれに変更してください:
where (@LastName = 'All' and 1=1) or (LastName = @LastName)
アイデアは、@LastName
='すべて'の場合、クエリにフィルタを含めることはできません。 1 =1の条件は常に真であり、他のチェックと一緒にすべての結果を返す必要があります。クエリがとることができるもう1つのパスは、特定の名前でフィルタリングすることです。これにより、null値が確実に除外されます。
更新:1=1条件は冗長です。条件を次のように書き換えることができます:
where (@LastName = 'All') or (LastName = @LastName)