我正在尋找格式化來自XML列的數據。我搜索了stackoverflow並找到了一些很好的例子。SQL從XML字段獲取數據
來源:CONVERTING SQL NVARCHAR(MAX) TO XML and getting a Value from XML string
我的查詢是這樣的:
SELECT
b.x.value('/CustomDataResponse[1]/FieldData[1]/FieldData[1]/FieldName[1]', 'varchar(100)') as Name
,b.x.value('/CustomDataResponse[1]/FieldData[1]/FieldData[1]/FieldDataValue[1]', 'varchar(100)') as Value
FROM
MyTable a
CROSS APPLY (
SELECT
CAST(CAST ([XMLVAL] AS NVARCHAR(MAX)) AS XML) x
) b;
XML看起來象下面這樣:
<CustomDataResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<AccountID>0</AccountID>
<UserNumber xsi:nil="true" />
<Workstation xsi:nil="true" />
<SerialNumber xsi:nil="true" />
<Set>0</Set>
<SecurityID>0000000</SecurityID>
<SecurityType>Equity</SecurityType>
<FieldData>
<FieldData>
<FieldName>ISSUER</FieldName>
<FieldDataValue>ABC INC</FieldDataValue>
</FieldData>
<FieldData>
<FieldName>TICKER</FieldName>
<FieldDataValue>ABC</FieldDataValue>
</FieldData>
<FieldData>
<FieldName>SECURITY_TYP</FieldName>
<FieldDataValue>PUBLIC</FieldDataValue>
</FieldData>
</FieldData>
</CustomDataResponse>
與此查詢和XML,我得到的結果
如何將其擴展爲使用其他字段,如Ticker,Security_typ? 感謝您的幫助。
確定。我發佈了XML。 – ProgSky