तुलना केस संवेदनशील है इसलिए आपको सी # और सी # दोनों के खिलाफ तुलना करने की आवश्यकता है। SQL सर्वर 2008 में आप अपर-केस का उपयोग कर सकते हैं ।
declare @T table
(
ID int identity,
Skills XML
)
insert into @T values
('<Skills><Skill>C#</Skill><Skill>ASP.NET</Skill><Skill>VB.NET</Skill></Skills>')
insert into @T values
('<Skills><Skill>CB.NET</Skill><Skill>ASP.NET</Skill><Skill>c#</Skill></Skills>')
insert into @T values
('<Skills><Skill>F#</Skill><Skill>ASP.NET</Skill><Skill>VB.NET</Skill></Skills>')
select ID
from @T
where Skills.exist('/Skills/Skill[contains(., "C#") or contains(., "c#")]') = 1
परिणाम:
ID
-----------
1
2
अपडेट करें:
यह भी काम करेगा।
select T.ID
from @T as T
cross apply T.Skills.nodes('/Skills/Skill') as X(N)
where X.N.value('.', 'nvarchar(50)') like '%C#%'