tsql, использующий как с подстановочным знаком и конечным пробелом?

Я не могу заставить подобный оператор работать с пространством и запаздывающим подстановочным знаком. Мой запрос идет следующим образом:

select * from Table where Field like 'Desc_%'

Данные разграничены пространством такой как, Вершина Desc, Нижняя часть Desc и так далее. Запрос работает, когда я использую шаблон 'Desc _ %', но не, когда я использую шаблон '% Desc'. Поле является nvarchar (255).

Какие-либо идеи?

Править

Оказывается, что данные были разграничены вкладкой и когда я скопировал значение с Studio управления 2008 года, это преобразовало вкладку для интервала. Немая ошибка. Мне действительно нравилось [] подсказка, таким образом, я отметил ее ответ. Спасибо все, я не забуду не доверять копии с результатов сетки.

5
задан Aldwoni 21 February 2018 в 09:24
поделиться

3 ответа

Используйте квадратные скобки '[' & ']', чтобы задать соответствующий класс из одного символа. В вашем случае 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)

См. эту статью.

3
ответ дан 15 December 2019 в 06:13
поделиться

Поскольку знак подчеркивания - это односимвольный подстановочный знак, а процент - многосимвольный подстановочный знак, они одинаковы ("%" и "_%"). Это похоже на то, что вы просите два последовательных подстановочных знака. Не уверен, что понял ваш вопрос, но не удивлен, что он ведет себя не так, как вы ожидаете.

0
ответ дан 15 December 2019 в 06:13
поделиться

Вы можете явно указать, что вам нужен пробел, используя его значение ASCII?

SELECT * FROM Table WHERE Field Like 'Desc' + CHAR(32) + '%'
0
ответ дан 15 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: