SQL-поиск значений в поле с текстовым типом данных независимо от регистра - PullRequest
1 голос
/ 29 ноября 2011

Я пытаюсь получить все значения для определенного поиска независимо от регистра.В нашей базе данных SQL Server включена чувствительность к регистру, и я не хочу менять ее, если это возможно.

Если я выполняю инструкцию SELECT, которая включает функцию LOWER (), как показано ниже

SELECT COUNT(blogpostId) as blogpostcount
FROM blogposts
WHERE stateId = '1'
AND blogId = '20'
AND LOWER(blogpostContent) LIKE '%test%'

выдает ошибку и говорит

Недопустимый текст типа данных аргумента для аргумента 1 нижней функции.

Тип данных для столбца blogpostContenttextЕсли я изменяю это на nvarchar, это работает, однако nvarchar допускает только максимум 255 символов, и мне нужно намного больше этого.

Есть ли в любом случае, чтобы проверить результаты в текстовом поле независимо от регистра??

Заранее спасибо

1 Ответ

6 голосов
/ 29 ноября 2011

Вы можете явно заставить его использовать сортировку CASE INSENSITIVE следующим образом:

SELECT COUNT(blogpostId) as blogpostcount  
FROM blogposts  
WHERE stateId='1'  
AND blogId = '20'  
AND blogpostContent LIKE '%test%'  COLLATE SQL_Latin1_General_CP1_CI_AS 
...