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 'https://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 ....