Bạn muốn trích xuất thuộc tính hoặc phần tử nào từ <Location>
điểm giao?? Bạn không thể chuyển đổi toàn bộ nút XML thành bigint
(khi truy vấn của bạn cố gắng thực hiện ....)
Bạn có thử giải nén <Location LaborHours="1.0">
không giá trị ??
Sau đó, bạn cần:
;WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions')
SELECT
XC.value('@LaborHours', 'decimal(18,4)')
FROM
Production.ProductModel
CROSS APPLY
Instructions.nodes('/root/Location') AS XT(XC)
Trước hết:vì có nhiều <Location>
trong XML của bạn, bạn phải sử dụng CROSS APPLY
và .nodes()
hàm để lấy tất cả <Location>
các nút xml.
Thứ hai, vì bạn muốn truy xuất thuộc tính LaborHours
(giả định của tôi), bạn cần sử dụng .value('@LaborHours
) `cách tiếp cận.
Và cuối cùng, vì các giá trị đó là 1.0
hoặc 2.5
, bạn phải sử dụng decimal
(với độ chính xác và tỷ lệ thích hợp) để nhận các giá trị đó - không phải bigint
....