Ist es möglich, einen Index für Spalte mit Änderungen dieser Spalte zu erstellen. Zum Beispiel - Ich habe eine Spalte A (nvarchar), Aber in der Abfrage sollte ich Werte aus dieser Spalte ersetzen, um mit Werten in der Liste zu vergleichen. Klassische Index wird nur funktionieren, wenn ich ursprünglichen Werte aus Spalte A verwendenSQL-Index für geänderte Spalte
Die Abfrage sieht aus wie nächste
SELECT
*
FROM
MyTable
WHERE
REPLACE(A, ' ', '') IN ('aasa', 'asa', 'wew','wewe')
Funktion Verwendung in der Where-Klausel 'Index' Verwendung vermeiden. Aktualisieren Sie Ihre 'A'-Spalte mit' replace'-Funktion, dann ersetzen Sie die Funktion in 'where'-Klausel. –
@Prdp Ja, ich kenne diesen Weg, aber ich muss die ursprünglichen Werte speichern. In diesem Moment sehe ich nur den Weg - neue Spalte B mit ersetzten Daten zu erstellen und einen Index für diese Spalte zu erstellen. Aber es wird viele doppelte Daten geben. – AndrewVA
Mögliches Duplikat von [SQL Server - Index für eine berechnete Spalte?] (Http://stackoverflow.com/questions/1323214/sql-server-index-on-a-computed-column) – Serg