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

Najlepsze indeksy do użycia w instrukcji OR w SQL Server

Indeks nie może być użyty na takim OR. spróbuj tego:

SELECT * FROM table WHERE Due_Amount > 0
UNION ALL  
SELECT * FROM table Bounced_Due_Amount > 0
--use "UNION" if Due_Amount and Bounced_Due_Amount could both >0 at any one time

mają indeks Due_Amount, a drugi Bounced_Due_Amount.

Może lepiej przeprojektować swój stół. Nie znając logiki biznesowej ani tabeli, zgaduję, że możesz mieć kolumnę „Odrzucona” T/N lub 1/0 char/bit i tylko kolumnę „Due_Amount”. Dodaj indeks dla tej „należnej kwoty”, a zapytanie będzie wyglądać tak:

SELECT * FROM table WHERE Due_Amount > 0

nadal możesz odróżnić wiersz Odbity lub nie. To nie zadziała, jeśli musisz mieć jednocześnie odbitą i nieodrzuconą należną kwotę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zliczanie Liczba kolejnych wystąpień wartości w tabeli

  2. Projekt schematu faktur i płatności – lepszy model niż relacja M:M?

  3. Menedżer raportów SSRS ustawia domyślny poziom powiększenia

  4. Łączenie ciągów SQL Server z wartością Null

  5. Jak uniemożliwić SSIS zapisywanie nazw kolumn w danych wyjściowych pliku prostego?