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

Opbygning af dynamisk WHERE-klausul i lagret procedure

Prøv dette i stedet:

WHERE 1 = 1
AND (@what     IS NULL OR [companies_SimpleList].[Description] Like @What )
AND (@keywords IS NULL OR companies_SimpleList.Keywords        Like @Keywords)
AND (@where    IS NULL OR companies_SimpleList.FullAdress      Like @Where)
...

Hvis nogen af ​​parametrene @what , @where sendes til den lagrede procedure med NULL værdi, så vil betingelsen blive ignoreret. Du kan bruge 0 i stedet for null som en testværdi, så vil det være noget i stil med @what = 0 OR ...



  1. Entitetsrammekode først - Skift tabelkolonnesortering

  2. VÆLG SUM() med betingelser i mysql

  3. Hvordan reducerer jeg størrelsen på min sql-serverlogfil?

  4. Jeg vil opdatere en værdi af alternativknappen i databasen (mysql) ved hjælp af php