Vilket attribut eller element vill du extrahera från bigint
(som din fråga försöker göra...)
Försöker du extrahera
värde??
Då behöver du:
;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)
Först och främst:eftersom det finns flera CROSS APPLY
och .nodes()
funktion för att få alla
xml-noder.
För det andra, eftersom du vill hämta attributet LaborHours
(mitt antagande), måste du använda .value('@LaborHours
)` tillvägagångssätt.
Och slutligen, eftersom dessa värden är 1.0
eller 2.5
måste du använda decimal
(med rätt precision och skala) för att få dessa värden - inte bigint
....