Поиск столбца с разделенными запятыми значениями - PullRequest
2 голосов
/ 30 декабря 2011

У меня SQL Server 2008 r2 edition, над которым я работаю, и веб-страница .Net в качестве внешнего интерфейса.

Что касается проблемы, в базе данных есть столбец, который в основном состоит из различных наборов навыков, разделенных запятой. Например, у одного кандидата есть 3 различных набора навыков, а именно C#, SQL server, Oracle. Пользователь, который хочет перечислить кандидатов, обладающих навыками C# и Oracle, предоставит ввод в виде C#, Oracle в текстовом поле на веб-странице. Я хочу написать запрос, который может перечислить такие. Я пробовал поиск в свободном тексте. Но он не может быть извлечен, если в заглавных / маленьких словах нет поддержки подстановочного символа, даже порядка умений.

Ниже приведен пример запроса

Select * from profiles where freetext(skills, ‘C#,Oracle’)

Ответы [ 3 ]

11 голосов
/ 30 декабря 2011

Из моего POV правильным (и нежелательным) ответом является изменение структуры вашей таблицы: у вас никогда не должно быть списка значений в одном поле, ЕСЛИ ВЫ ХОТИТЕ ДОСТУП К ИХ ОТДЕЛЬНО.

0 голосов
/ 25 июля 2015

этот хорош для полного текста.

Совпадение И C #, и Oracle

select * From Profiles where contains(*,'"Oracle" and "C#"')

Совпадение Либо C #, либо Oracle

select * From Profiles where contains(*,'"Oracle" or "C#"')

Full-text: and/or

0 голосов
/ 31 декабря 2011

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Я согласен с @EugenRieck (+1 к этому ответу) - вставка строки CSV в одно поле - плохой дизайн.

Но если вы должны ... посмотри сюда сначала .Или попробуйте решение CLR .

...