sql >> Database >  >> RDS >> Sqlserver

WHERE-clausules dynamisch / programmatisch aan SQL toevoegen

Je kunt dit alleen in sql doen, als volgt:

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)
....

Als een parameter is doorgegeven aan de opgeslagen procedure met een NULL waarde, dan wordt de hele voorwaarde genegeerd.

Merk op dat :Ik heb WHERE 1 = 1 toegevoegd om de query te laten werken in het geval dat er geen parameter aan de query is doorgegeven en in dit geval zal alle resultatenset worden geretourneerd, aangezien 1 = 1 is altijd waar.



  1. DAYOFYEAR() Voorbeelden – MySQL

  2. Hoe kan ik vinden welke tabellen verwijzen naar een bepaalde tabel in Oracle SQL Developer?

  3. Kolomnamen en typen van een opgeslagen procedure ophalen?

  4. laad data spinner van sqlite en mysql