Reputation: 41
I have SQL server 2008 r2 edition, which am working on and a .Net
webpage as front end.
Coming to the issue, there is a column in the database which basically consists of various skill sets separated by a comma. For example some candidate has a 3 different skill sets namely C#
, SQL server
, Oracle
. The user who wants to list the candidates having the skills of both C#
and Oracle
will provide the input as C#, Oracle
in a text box on the webpage. I want to write a query which can list out such. I have tried freetext search. But it fails to fetch if in Capital/small words, no support for wildcard character, even the order of skills.
Below is the sample query
Select * from profiles where freetext(skills, ‘C#,Oracle’)
Upvotes: 2
Views: 1644
Reputation: 5002
this is a good one about full-text.
Match Both C# and Oracle
select * From Profiles where contains(*,'"Oracle" and "C#"')
Match Either C# or Oracle
select * From Profiles where contains(*,'"Oracle" or "C#"')
Upvotes: 0
Reputation: 9372
DISCLAIMER: I agree with @EugenRieck (+1 to that answer) - stuffing a CSV string in one field is bad design.
But if you must...look here first. Or try a CLR solution.
Upvotes: 0
Reputation: 65342
From my POV the correct (and unwelcome) answer is to redesign your table structure: You should never ever have a list of values in a single field, IF YOU WANT TO ACCESS THEM SEPARATELY.
Upvotes: 11