Я не могу заставить подобный оператор работать с пространством и запаздывающим подстановочным знаком. Мой запрос идет следующим образом:
select * from Table where Field like 'Desc_%'
Данные разграничены пространством такой как, Вершина Desc, Нижняя часть Desc и так далее. Запрос работает, когда я использую шаблон 'Desc _ %', но не, когда я использую шаблон '% Desc'. Поле является nvarchar (255).
Какие-либо идеи?
Править
Оказывается, что данные были разграничены вкладкой и когда я скопировал значение с Studio управления 2008 года, это преобразовало вкладку для интервала. Немая ошибка. Мне действительно нравилось [] подсказка, таким образом, я отметил ее ответ. Спасибо все, я не забуду не доверять копии с результатов сетки.
Используйте квадратные скобки '[' & ']', чтобы задать соответствующий класс из одного символа. В вашем случае SQL должен выглядеть так: «выберите * из таблицы, где поле выглядит как 'Desc []%'»
РЕДАКТИРОВАТЬ: добавить образец, ссылка
CREATE TABLE #findtest (mytext varchar(200) )
insert #findtest VALUES ('Desc r')
insert #findtest VALUES ('Descr')
select * from #findtest where mytext like 'Desc[ ]%'
DROP TABLE #findtest
(1 row(s) affected)
(1 row(s) affected)
mytext
--------
Desc r
(1 row(s) affected)
См. эту статью.
Поскольку знак подчеркивания - это односимвольный подстановочный знак, а процент - многосимвольный подстановочный знак, они одинаковы ("%" и "_%"). Это похоже на то, что вы просите два последовательных подстановочных знака. Не уверен, что понял ваш вопрос, но не удивлен, что он ведет себя не так, как вы ожидаете.
Вы можете явно указать, что вам нужен пробел, используя его значение ASCII?
SELECT * FROM Table WHERE Field Like 'Desc' + CHAR(32) + '%'