Если вы хотите, чтобы когда-либо использовался индекс, сохраняйте данные в согласованном порядке (с удалением пробелов).Либо просто удалите пробелы, либо добавьте постоянный вычисляемый столбец. Затем вы можете просто выбрать из этого столбца и не добавлять все пространство, удаляя накладные расходы при каждом выполнении запроса.
добавить вычисляемый столбец PERSISTED:
ALTER TABLE Contacts ADD PostcodeSpaceFree AS Replace(Postcode, ' ', '') PERSISTED
go
CREATE NONCLUSTERED INDEX IX_Contacts_PostcodeSpaceFree
ON Contacts (PostcodeSpaceFree) --INCLUDE (covered columns here!!)
go
, чтобы просто исправить столбец, убрав использованные пробелы:
UPDATE Contacts
SET Postcode=Replace(Postcode, ' ', '')
Теперь вы можете выполнять поиск таким образом, либо выберите, может использовать индекс:
--search the PERSISTED computed column
SELECT
PostcodeSpaceFree
FROM Contacts
WHERE PostcodeSpaceFree LIKE 'NW101%'
или
--search the fixed (spaces removed column)
SELECT
Postcode
FROM Contacts
WHERE PostcodeLIKE 'NW101%'