1. ホーム
  2. sql-server

[解決済み] SQL Server 2008 の XML フィールドから値を選択する

2022-08-21 18:09:14

質問

私のXMLフィールドを見ると、私の行は次のようになります。

<person><firstName>Jon</firstName><lastName>Johnson</lastName></person>
<person><firstName>Kathy</firstName><lastName>Carter</lastName></person>
<person><firstName>Bob</firstName><lastName>Burns</lastName></person>

これらは私のテーブルの3つの行であることに注意してください。

のように、SQLの結果をテーブルとして返したいのですが。

Jon  | Johnson
Kathy| Carter
Bob  | Burns

どのようなクエリでこれを実現するか?

どのように解決するのですか?

XMLフィールドの名前が'xmlField'であるとすると...

SELECT 
[xmlField].value('(/person//firstName/node())[1]', 'nvarchar(max)') as FirstName,
[xmlField].value('(/person//lastName/node())[1]', 'nvarchar(max)') as LastName
FROM [myTable]