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

Cách trích xuất dữ liệu từ cột xml trong sql 2008

declare @T table
(
  XMLCol xml
)

insert into @T values
('<Menu>
    <Id>1</Id>
      <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-1.jpg</Url>
  </Menu>
  <Menu>
    <Id>2</Id>
    <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-2.jpg</Url>
  </Menu>
  <Menu>
    <Id>3</Id>
    <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-3.jpg</Url>
  </Menu>
  <Menu>
    <Id>4</Id>
    <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-4.jpg</Url>
  </Menu>
  <Menu>
    <Id>5</Id>
    <Url>http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-5.jpg</Url>
  </Menu>')

select X.N.value('Id[1]', 'int') as Id,
       X.N.value('Url[1]', 'varchar(max)') as Url
from @T as T
  cross apply T.XMLCol.nodes('/Menu') as X(N)

Kết quả:

Id          Url
----------- ---------------------------------------------------------------------
1           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-1.jpg
2           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-2.jpg
3           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-3.jpg
4           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-4.jpg
5           http://www.zmtcdn.com/menus/1211/menu-photo-for-barbeque-nation-5.jpg


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. COUNT (DISTINCT column_name) Sự khác biệt so với COUNT (column_name) trong SQL Server 2008?

  2. Làm cách nào để tạo ràng buộc kiểm tra nhiều bảng?

  3. Cách thêm khóa chính vào bảng hiện có trong SQL Server (ví dụ T-SQL)

  4. Nhận danh sách với các giá trị bắt đầu và kết thúc từ bảng ngày giờ

  5. Hãy nhớ điều này khi định dạng kiểu dữ liệu TIME trong SQL Server (T-SQL)