Необходимо написать SQL-запрос для поиска специального символа в столбце. Текст, необходимый для поиска, это «R & D», но проблема заключается в том, что SQL Server 2005 воспринимает его как логический оператор.Поиск по SQL-запросу ampersand &
ответ
Я предполагаю, что вы используете параметры, правильно?
Потому что, если вы НЕ используете параметры, он работает (см. Другие ответы).
Что не работает так:
declare @tmp nvarchar(20)
set @tmp = 'R&D'
select * from MyTable where MyColumn = @tmp
Единственный способ, который я нашел, чтобы заставить его работать с параметрами делает это следующим образом:
declare @tmp nvarchar(20)
set @tmp = 'R&D'
select * from MyTable where MyColumn like '%' + @tmp + '%'
EDIT:
Прежде всего, мне нужно знать, используете ли вы параметры o r нет.
Если нет, я не понимаю проблему вообще.
Один из них будет работать (с или без Т.П.):
select * from MyTable where MyColumn = 'R&D'
select * from MyTable where MyColumn like '%R&D%'
Если вы сделать работу с параметрами, мое выше решение (... как '%' + @tmp + '%') является единственное, что я знаю.
EDIT 2
Теперь, когда я знаю, что тип данных «текст»: Проблема в том, что вы можете осуществить поиск только текст с LIKE (не с «=»), и вы можете 't индексируйте текстовый столбец для увеличения скорости.
Тип текстовых данных устарел, поэтому в любом случае вы должны изменить его на varchar (max).
И varchar (max) не имеет ограничений, которые имеет текст: вы можете искать его с помощью «=», и вы можете его индексировать.
Так что это будет правильное решение: замените его на текст на varchar (max), и все будет работать!
Как и так много времени. Любой другой вариант? – Malik
Select * From dbo.MyTable
Where MyColumn like '%R&D%'
или вы могли бы использовать это вместо like
:
Select * From dbo.MyTable
Where PatIndex('%R&D%', MyColumn) > 0
Как и так много времени. Любой другой вариант? – Malik
declare @tbl table
(
textcol varchar(50)
)
insert into @tbl select 'R&D'
insert into @tbl select 'What is R&D'
insert into @tbl select 'SometextR&DAndsometext'
insert into @tbl select 'This Row will not return'
select * from @tbl where textcol like '%R&D%'
Нравится так много времени. Любой другой вариант? – Malik
Сколько времени? Каков тип данных столбца? Какие у вас данные? – Kashif
Сравнительно долго. Сейчас мы ищем альтернативы. Если найдется, здорово, нет, жить с ним. Тип столбца - это текст. Данные - это огромный фрагмент текстового символа. – Malik
- 1. Android ampersand по своему усмотрению
- 2. Используйте CONTAINS поиск со специальными символами, такими как ampersand
- 3. Ошибка Ampersand (&) с .Find
- 4. php query mongodb with ampersand (&)
- 5. MS SQL CONTAINS with Ampersand Search
- 6. PHP SoapServer ampersand закодирован
- 7. WxPython Ampersand Use
- 8. Ampersand в пароле Windows
- 9. NSXMLParser дроссели на ampersand &
- 10. Добавить Ampersand в XmlElement
- 11. Ampersand в XAML
- 12. genshi и javascript ampersand?
- 13. Imagemagick ampersand в каталоге
- 14. Проблемы с Ampersand
- 15. C# Regex удалить ampersand
- 16. RestSharp deserialize ampersand
- 17. Wordpress Виджеты ampersand Задача
- 18. Ampersand & PHP/MySQL
- 19. Return with Ampersand
- 20. Ampersand в SQLite запроса
- 21. $ _GET, Ampersand прерывает
- 22. LXML: Ampersand в тексте
- 23. escaping ampersand в url
- 24. Ampersand внутри отливки
- 25. jQuery Double Escaping Ampersand
- 26. Ampersand, XSLT и LaTeX
- 27. Ampersand in GET, PHP
- 28. BeautifulSoup4: Ampersand в тексте
- 29. Рубин Ampersand Метод
- 30. PHP regex ampersand issue
Можете ли вы опубликовать запрос, который используете? – Oded
выберите Column_Name из Table_Name где содержит (Column_Name, 'R & D') – Malik
Возможно, отредактируйте название вопроса, чтобы конкретно указать contains() – codeulike