Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

टीएसक्यूएल एक्सएमएल कॉलम में कौशल वाले कर्मचारी का चयन कैसे करें

तुलना केस संवेदनशील है इसलिए आपको सी # और सी # दोनों के खिलाफ तुलना करने की आवश्यकता है। 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#%'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL कथन को सारगर्भित क्या बनाता है?

  2. sysobjects में सभी डेटाबेस का चयन करें जिसमें स्कीमा की परवाह किए बिना 'mytable' नाम की एक तालिका है?

  3. स्तंभ नाम पिवट तालिका के रूप में SQL सर्वर पंक्ति मान?

  4. SQL सर्वर LIKE जिसमें ब्रैकेट वर्ण हैं

  5. जब एक SQL फ़ंक्शन को .Net ऐप से कॉल किया जाता है तो प्रदर्शन अंतर क्यों होते हैं जब प्रबंधन स्टूडियो में एक ही कॉल किया जाता है