Функция, аналогичная СОДЕРЖИТ - PullRequest
0 голосов
/ 11 января 2012

Здравствуйте. Я ищу функцию, похожую на функцию CONTAINS , однако для нее не требуется полнотекстовое индексирование поля.По сути, у меня есть поле, которое содержит несколько кодов, разделенных пробелом, например ABC DEF GHI.Я хочу выполнить запрос и посмотреть, если DEF в поле.Как мне это сделать?

Ответы [ 3 ]

6 голосов
/ 11 января 2012

Звучит так, как будто вам может понадобиться оператор LIKE.Запрос будет выглядеть примерно так:

SELECT * FROM someTable WHERE someField LIKE '%DEF%'
2 голосов
/ 11 января 2012

Взгляните на CHARINDEX .Обратите внимание, что я добавил пробел в начало и конец столбца, в котором выполняется поиск, чтобы учесть случай, когда строка поиска является первой или последней в списке.

SELECT *
    FROM YourTable
    WHERE CHARINDEX(' DEF ', ' ' + YourColumn + ' ') <> 0;
2 голосов
/ 11 января 2012
WHERE YourField like '% DEF %' 
OR YourField LIKE '% DEF'
OR yourField like 'DEF %' 
OR YourField = 'DEF'

Охватывает случай, когда он находится в середине, окруженный пробелами, или в конце / начале - и последний крайний край оператора, который является только тем значением без пробелов.Преднамеренно используемые / гарантированные пробелы в случае, если у вас есть значение 'ADEFB', например, один код внутри другого.

Производительность не будет большой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...