sql >> Databasteknik >  >> RDS >> Sqlserver

Lägg till WHERE-satser till SQL dynamiskt / programmatiskt

Du kan bara göra detta i sql, så här:

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

Om någon parameter skickas till den lagrade proceduren med en NULL värde så kommer hela villkoret att ignoreras.

Observera att :Jag lade till WHERE 1 = 1 för att få frågan att fungera om ingen parameter skickas till frågan och i det här fallet kommer alla resultatuppsättningen att returneras, eftersom 1 = 1 är alltid sant.



  1. Övervakning av läs/skrivfördröjning

  2. Hur man installerar MySQL på Debian 7

  3. Kör alla SQL-filer i en katalog

  4. Att lagra json, jsonb, hstore, xml, enum, ipaddr, etc misslyckas med kolumn x är av typen json men uttrycket är av typen som varierar