Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Добавете WHERE клаузи към SQL динамично / програмно

Можете да направите това само в sql, както следва:

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

Ако някой параметър е предаден на съхранената процедура с NULL стойност, тогава цялото условие ще бъде игнорирано.

Обърнете внимание на това :Добавих WHERE 1 = 1 за да накара заявката да работи в случай, че към заявката не е предаден параметър и в този случай целият резултат ще бъде върнат, тъй като 1 = 1 винаги е вярно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кой е най-добрият начин за съкращаване на дата в SQL Server?

  2. Как да разбера какво заключва масите ми?

  3. Създаване на локална база данни на SQL Server

  4. TransactSQL, за да стартирате друг TransactSQL скрипт

  5. База данни, която може да обработва>500 милиона реда