【解決方法】SQL サーバーで XML から親要素名を取得する方法

プログラミングQA


やあ、

以下のサンプル xml から親要素名を取得する必要があります。 以下のクエリを試したところ、すべての子の名前を含むすべての要素名も取得できました。 しかし、xml からの親要素名だけが必要です。

SQL
DECLARE @xml xml = 
'<root>
	<country>
		<id>1</id>
		<code>CY</code>
		<name>cyprus</name>
		<isocode>CYP</isocode>
	</country>
	<country>
		<id>110</id>
		<code>JP</code>
		<name>Japan</name>
		<isocode>JPN</isocode>
	</country>
	<country>
		<id>155029</id>
		<code>IN</code>
		<name>India</name>
		<isocode>IND</isocode>
	</country>
	<rank>
		<id>3</id>
		<code>C/O TRN</code>
		<rankname>CHIEF OFFICER TRAINEE</rankname>
	</rank>
	<rank>
		<id>105354</id>
		<code>MAS</code>
		<rankname>MASTER</rankname>
	</rank>
	<rank>
		<id>105355</id>
		<code>C/E</code>
		<rankname>CHIEF ENGINEER</rankname>
	</rank>
</root>'

SELECT Nodes.Name.query('local-name(.)') AS 'NAMES' FROM @xml.nodes('//*') As Nodes(Name)

上記のクエリの出力は、

root
country
id
code
name
isocode
country
rank
id
code
rankname
rank
id
code
rankname
rank
id
code
rankname

必要な出力:(xml からの親要素名のみ)

ランク

私が試したこと:

This is the query i have tried,
SELECT Nodes.Name.query('local-name(.)') AS 'NAMES' FROM @xml.nodes('//*') As Nodes(Name)

解決策 1

私はかつてこの問題を抱えていましたが、正直なところコードを忘れていました。 インドのYoutuberさんからいただきました。 その日、文字通り私の命を救ってくれました。

コメント

タイトルとURLをコピーしました