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

Nhận Phần tử thứ n từ lần cuối cùng trong một xml trong Máy chủ Sql

Điều này sẽ hoạt động. Đặt giá trị của @index biến là số lượng bản ghi cần tìm, liên quan đến phần cuối của danh sách:

declare @index int = 1
declare @xml xml = '<Employees>
    <Person>
        <ID>1000</ID>
        <Name>Nima</Name>
        <LName>Agha</LName>
    </Person>
    <Person>
        <ID>1001</ID>
        <Name>Ligha</Name>
        <LName>Ligha</LName>
    </Person>
    <Person>
        <ID>1002</ID>
        <Name>Jigha</Name>
        <LName>Jigha</LName>
    </Person>
    <Person>
        <ID>1003</ID>
        <Name>Aba</Name>
        <LName>Aba</LName>
    </Person>
</Employees>'

select t2.person.value('(Name/text())[1]','varchar(50)')
from @xml.nodes('Employees/Person[position()=(last()-sql:variable("@index"))]') as t2(person)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DateAdd Column gây ra lỗi tràn

  2. Cách thực thi truy vấn SQL mà không hiển thị kết quả

  3. Chọn một công cụ giám sát máy chủ SQL để phù hợp với nhu cầu của bạn

  4. Các kiểu liệt kê trong SQL Server 2008?

  5. Hàm DECODE () trong SQL Server