У меня есть оператор, который выбирает подстроку charindex следующим образом:
SELECT SUBSTRING(StringField, 5, CHARINDEX('ABC', StringField) - 5)...
WHERE
CHARINDEX('ABC', StringField) > 5
Когда я запускаю приведенный выше оператор в запросе на выборку, результаты возвращаются просто отлично. Когда я запускаю приведенный выше оператор в индексированном представлении, привязанном к схеме, я получаю эту ошибку:
Invalid length parameter passed to the LEFT or SUBSTRING function
Чтобы решить эту проблему, я напишу функцию для получения максимального значения CharIndex и 0, чтобы исключить возможность отрицательного значения. Но кто-нибудь знает, почему предложение where не отфильтровывает оператор select?