De antwoorden op de tweede plaats en de daaropvolgende antwoorden geven een methode om dit te doen zonder de zoekwaarde twee keer te binden:
SELECT * FROM ROUTERS
WHERE coalesce(ROUTER_ADDRESS, '') = coalesce( ?, '');
Merk op dat dit een dummy-waarde vereist die nooit een geldige kolomwaarde kan zijn (dat is "out of band"); Ik gebruik de lege string. Als je zo'n waarde niet hebt, moet je de waarde twee keer binden:
SELECT * FROM ROUTERS
WHERE ROUTER_ADDRESS = ? or (ROUTER_ADDRESS is null and ? is null);