Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Warunkowe sprawdzenie klauzuli „Gdzie”

Niektórzy używają tej techniki

... WHERE @itemid IS NULL OR tbl.itemid = @itemid

Gwarantuje to jednak, że nigdy nie otrzymasz wyszukiwania indeksu w kolumnie itemid.

Lepszym rozwiązaniem, jeśli tabela jest w ogóle duża, jest podzielenie zapytania na 2 oddzielne przypadki

IF(@itemid IS NULL)
  SELECT foo FROM bar
ELSE
  SELECT foo FROM bar WHERE itemid = @itemid

Jeśli liczba kombinacji jest zbyt duża, możesz rozważyć dynamiczny SQL. Upewnij się, że najpierw rozumiesz wstrzykiwanie SQL.

Ref:Warunki wyszukiwania dynamicznego w T-SQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pogrupować według dat każdego tygodnia do ostatnich sześciu tygodni w niedziele w sql?

  2. Dlaczego warto korzystać z typu danych geograficznych SQL Server 2008?

  3. Tworzenie planów konserwacji w SQL Server

  4. Jak pobrać obraz binarny z bazy danych za pomocą C# w ASP.NET?

  5. DATETIMEFROMPARTS() Przykłady w SQL Server (T-SQL)