sql >> Base de Datos >  >> RDS >> Mysql

DONDE Si no se cumple la condición, obtenga todos los valores, incluido NULL

Cambie su condición a esta en su lugar:

where (@LastName = 'All' and 1=1) or (LastName = @LastName)

La idea es que cuando @LastName ='Todas', entonces su consulta no debería tener ningún filtro. La condición 1=1 siempre será verdadera y, junto con la otra comprobación, debería devolver todos los resultados. La otra ruta que puede tomar la consulta es filtrar por un Apellido específico, lo que definitivamente debería excluir los valores nulos.

Actualización:LA condición 1=1 es redundante. Puede reescribir la condición como:

where (@LastName = 'All') or (LastName = @LastName)

Demostración