sql >> Database teknologi >  >> RDS >> Sqlserver

SQL ignorer en del af WHERE, hvis parameteren er null

Hvad med sådan noget som

SELECT Id, col1, col2, col3, col4 
FROM    myTable 
WHERE   col1 LIKE @Param1+'%'
OR      @Param1 IS NULL

i dette specifikke tilfælde kunne du også have brugt

SELECT Id, col1, col2, col3, col4 
FROM    myTable 
WHERE   col1 LIKE ISNULL(@Param1,'')+'%'

Men generelt kan du prøve noget lignende

SELECT Id, col1, col2, col3, col4 
FROM    myTable 
WHERE   (condition1 OR @Param1 IS NULL)
AND     (condition2 OR @Param2 IS NULL)
AND     (condition3 OR @Param3 IS NULL)
...
AND     (conditionN OR @ParamN IS NULL)


  1. Hvordan konfigurerer man brugerdefineret MySQL NHibernate Batcher?

  2. Forsinket holdbarhed i SQL Server 2014

  3. Sådan får du streng efter karakter orakel

  4. Hvordan udfører jeg forespørgsler ved DB-forbindelse i Rails?