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

Přidejte klauzule WHERE do SQL dynamicky / programově

Můžete to udělat pouze v SQL, takto:

SELECT * 
FROM tUsers 
WHERE 1 = 1
  AND (@userID IS NULL OR RTRIM(Name) = @userID )
  AND (@password IS NULL OR RTRIM(Password) = @password)
  AND (@field2 IS NULL OR Field2 = @field2)
....

Pokud je některý parametr předán uložené proceduře s NULL hodnota, pak bude celá podmínka ignorována.

Všimněte si, že :Přidal jsem WHERE 1 = 1 aby dotaz fungoval i v případě, že dotazu nebude předán žádný parametr a v tomto případě bude vrácena celá sada výsledků, protože 1 = 1 je vždy pravda.



  1. Jak „odhalit“ číslo v MySQL

  2. Změnit počáteční číslo automatického zvýšení?

  3. Jak vytvořit Rest API s Spring Boot pomocí MySQL a JPA

  4. Databáze kódů PIN v Indii se skriptem pro vyhledávání polohy v php a jquery