Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

WHERE Se a condição não for atendida, obtenha todos os valores, incluindo NULL


Altere sua condição para isso:
where (@LastName = 'All' and 1=1) or (LastName = @LastName)

A ideia é que quando @LastName ='All' então sua consulta não deve ter nenhum filtro. A condição 1=1 será sempre verdadeira, e junto com a outra verificação deverá retornar todos os resultados. O outro caminho que a consulta pode seguir é a filtragem por um sobrenome específico, que definitivamente deve excluir valores nulos.

Atualização:A condição 1=1 é redundante. Você pode reescrever a condição como:
where (@LastName = 'All') or (LastName = @LastName)

Demonstração