Ich muss mit Zeilen aus meiner Tabelle abzurufen aus einem Feld mit einem bestimmten Wert Start:Wie kann ich diese Abfrage sargable machen?
ich zur Zeit so mit einer einfachen Abfrage wie folgt vorgehen:
SELECT A.ID FROM SCHEMA.TABLE A WHERE A.FIELD NOT LIKE 'WORD%'
Allerdings habe ich gelernt, dass A.FIELD
enthält manchmal eine variierende Anzahl von Leerzeichen vor "WORD".
Offensichtlich könnte ich die Abfrage mit einem anderen Platzhalter neu schreiben, aber das würde es nicht sargable machen und es ein wenig verlangsamen (diese Abfrage läuft auf einer ziemlich großen Tabelle und muss so effizient wie möglich sein) .
Gibt es eine Möglichkeit, eine Sargable-Abfrage zu schreiben, um dieses Problem zu beheben?
Einfache Lösung, bereinigen Sie Ihre Daten und entfernen Sie die führenden Bereiche. SQL interessiert nicht für abschließende Leerzeichen, aber führende Leerzeichen zählen definitiv. –
Ich bin mit @KrisGruttemeyer auf die Bereinigung der Daten. Können Sie die Spalte jedoch einfach trimmen? LTRIM (A.Field) – JBond
@KrisGruttemeyer Ich habe das schon gemacht, aber ich war neugierig, ob es eine Möglichkeit gibt, die Abfrage neu zu schreiben, für den Fall, dass ich die Daten nicht für irgendwas säubern könnte Grund. – Mansfield