sql >> Database teknologi >  >> RDS >> Sqlserver

Tilføj WHERE-sætninger til SQL dynamisk / programmatisk

Du kan kun gøre dette i sql, sådan her:

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

Hvis en parameter overføres til den lagrede procedure med en NULL værdi, så vil hele betingelsen blive ignoreret.

Bemærk at :Jeg tilføjede WHERE 1 = 1 for at få forespørgslen til at fungere i tilfælde af, at ingen parameter sendes til forespørgslen, og i dette tilfælde vil alle resultatsættet blive returneret, da 1 = 1 er altid sandt.



  1. FEJL 1148:Den brugte kommando er ikke tilladt med denne MySQL-version

  2. Hvordan analyserer man strenge som en professionel ved hjælp af SQL SUBSTRING()-funktionen?

  3. Hvordan får man poster tilfældigt fra Oracle-databasen?

  4. Sletter element fra ListView og database med OnItemClickListener