私は特定の値で始まるフィールド外で私のテーブルから行を取得する必要があります。このクエリをsargableにするにはどうすればよいですか?
私は現在、このような単純なクエリでそうやっている:
SELECT A.ID FROM SCHEMA.TABLE A WHERE A.FIELD NOT LIKE 'WORD%'
しかし、私はあることを学びましたA.FIELD
には、「WORD」の前にさまざまな数の空白が含まれることがあります。
明らかに、私は別のワイルドカードでクエリを書き直すことができますが、それは非sargableになり、公正なビットを遅くします(このクエリはかなり大きなテーブルで実行され、できるだけ効率的でなければなりません) 。
私はこの問題を解決するために検索引数可能クエリを書くことができる方法はありますか?
簡単な解決策は、あなたのデータを浄化し、先頭のスペースを取り除くことです。 SQLは末尾のスペースは気にしませんが、先頭のスペースは確実にカウントされます。 –
私はデータをクレンジングする際に@KrisGruttemeyerと一緒にいます。しかし、列をトリミングできますか? LTRIM(A.Field)私は実際にすでにことをやった@KrisGruttemeyer – JBond
が、私は何のためにデータをきれいにすることはできなかったでしょう場合には、私は、クエリを書き直すことができな方法があったかどうかについて興味がありました理由。 – Mansfield