sql >> Database >  >> RDS >> Sqlserver

SQL negeert een deel van WHERE als parameter null is

Wat dacht je van iets als

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

in dit specifieke geval had je ook

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

Maar over het algemeen kun je iets proberen als

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. waarom schrijft in een tafel om stofzuigers in een andere te voorkomen?

  2. Doorsnede zoeken met activerecord

  3. Hoe kan ik fouten met onbewerkte variabele lengte te lang in SQL Developer voorkomen?

  4. Hoe voeg ik een arraysleutel in als tabelkolom en waarde als kolomwaarde in mysql met behulp van php?