Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

TSQL Cách chọn nhân viên có kỹ năng trong cột xml

So sánh có phân biệt chữ hoa chữ thường, vì vậy bạn cần so sánh với cả c # và C #. Trong SQL Server 2008, bạn có thể sử dụng chữ hoa .

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

Kết quả:

ID
-----------
1
2

Cập nhật:

Điều này cũng sẽ hoạt động.

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. Làm thế nào để chạy một thủ tục được lưu trữ trong máy chủ sql mỗi giờ?

  2. Làm cách nào để cập nhật giá trị thuộc tính xml trong biến xml bằng t-sql?

  3. Làm cách nào để CHÈN dữ liệu vào hai bảng đồng thời trong SQL Server?

  4. Cách định dạng số trong SQL Server

  5. Kết quả Truy vấn Email dưới dạng Bảng HTML trong SQL Server (T-SQL)