sql >> Databáze >  >> RDS >> Sqlserver

SQL ignoruje část WHERE, pokud je parametr null

Co takhle něco jako

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

v tomto konkrétním případě jste také mohli použít

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

Ale obecně můžete zkusit něco jako

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. Postgresql 10 - Paralelní konfigurace

  2. UTF-8 až do konce

  3. odstranit speciální znaky v php

  4. Jak používat parametry SQL v chunku R markdown SQL