sql >> Databasteknik >  >> RDS >> Mysql

WHERE Om villkoret inte är uppfyllt, hämta alla värden inklusive NULL

Ändra ditt tillstånd till detta istället:

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

Tanken är att när @LastName ='Alla' så bör din fråga inte ha några filter. Villkoret 1=1 kommer alltid att vara sant, och tillsammans med den andra kontrollen bör alla resultat returneras. Den andra sökvägen som frågan kan ta är att filtrera efter ett specifikt efternamn, vilket definitivt bör utesluta null-värden.

Uppdatering:villkoret 1=1 är överflödigt. Du kan skriva om villkoret som:

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

Demo



  1. En CREATE-sats med citerade fält i Oracle

  2. T-SQL Cast kontra Convert

  3. Hur aktiverar jag mysqlnd för php?

  4. Välj med dynamiskt genererat tabellnamn