私はXML列からデータをフォーマットしたいと考えています。私はstackoverflowを検索し、いくつかの良い例を見つけました。SQLはXMLフィールドからデータを取得します
出典:XMLは以下のように見える
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;
:
<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を、私は
となりますCONVERTING SQL NVARCHAR(MAX) TO XML and getting a Value from XML string
私のクエリがどのように見えます
Ticker、Security_typなどの他のフィールドを使用するように拡張するにはどうすればよいですか? ありがとうございます。
OK。 XMLを投稿しました。 – ProgSky