Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

TSQL Как да изберете служител с умения в xml колона

Сравнението е чувствително към главни и малки букви, така че трябва да сравнявате както c#, така и C#. В SQL Server 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 Server 2012

  2. SQL Server 2012 Произволен низ от списък

  3. Автоматично събиране на данни:файлове с бази данни и логически устройства в MS SQL Server

  4. За да намерите следващия работен ден

  5. SQL идентичността (автономер) се увеличава дори при връщане назад на транзакция