答えて
「ルート」と「要素」について少し混同しているようです。 XMLでは、ルートはツリーの最上部にある単一のノードです。
FOR XML PATHを何も指定せずに指定すると、「行」というXML要素のセットが取得されます。これはデフォルトの名前です。
USE AdventureWorks2016CTP3;
GO
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID BETWEEN 14500 AND 14502
FOR XML PATH;
私たちは、このような囲むXML要素に別の名前を指定することもできます。
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID BETWEEN 14500 AND 14502
FOR XML PATH('Person');
我々はトップレベルのルート要素で囲まれるXML要素をしたい場合は、我々はこのようにそれを指定することができます。要素名に空の文字列を指定する
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID BETWEEN 14500 AND 14502
FOR XML PATH('Person'),
ROOT('People');
、それが囲むXML要素を除外する原因となります。それは非常に独特なことです。なぜ誰かがそれをしたいと思うだろうと私は想像することはできません。
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID BETWEEN 14500 AND 14502
FOR XML PATH('');
ただしオンラインブックは、これは正しい動作であると言うん。 FOR XML句の基本構文>https://msdn.microsoft.com/en-gb/library/ms190922.aspx>引数> PATHを参照してください。
空の文字列(FOR XML PATH( ''))を指定すると、ラッパー要素は生成されません。
驚くべき答え。どうもありがとう..!! –
あなたは大歓迎です! FOR XMLは非常に複雑ですが、最終的に意味があります。 – RichardCL
MSDNから:
あなたは長さゼロの文字列を指定した場合、ラッピング要素が生成されていません。
(' '
は失敗します。空の文字列であり、1つのスペースではありません)。
これはルート要素とは関係がありません。つまり、が対象です。これは、ラップ要素についてのみです。
答えをありがとう。私はこのことに関して何かを見つけることができませんでしたので、ここでこの質問をしました。 XMLへのルートノードがない場合、これを行うのは何ですか? –
@NimbleFungus - 私が最も頻繁に使用することがわかっているユースケースは、名前のない列の動作と組み合わせた文字列連結です。例えば'%( '。'、 'nvarchar(max)')' –
@MartinSmith Martinさん、ありがとうございました。 –
- 1. require( 'path')とは何ですか? Webpack.config.jsの意味ですか?
- 2. javascript for windows pathの "../"の意味は何ですか?
- 3. F#式で「スキーマ」と「メタシンボル」の意味は何ですか?
- 4. cronコマンドで-q、-f、-c記号の意味は何ですか?
- 5. C++のF(文字列)の意味は何ですか?
- 6. FWORDのFの意味は何ですか?
- 7. perlではif文の中で-fは何を意味しますか?
- 8. 接尾辞 'f'はJavaコードで何を意味しますか?
- 9. $ F [2] .. $ F [3]はどういう意味ですか?
- 10. Sortは-fを意味しますか?
- 11. NSDecimalAdd() - constの意味は何を意味するのですか?
- 12. 客観的な意味での意味は何ですか?
- 13. Golang Fprint * fの意味
- 14. <?..?>はXMLで何を意味していますか?
- 15. <tag/>はXMLで何を意味していますか?
- 16. ReactJSでは何の意味ですか?
- 17. MongoDBでの意味は何ですか?
- 18. Perlで@_の意味は何ですか?
- 19. XMLとHTMLのパーサオプションNONET = 2048は何を意味しますか?
- 20. Pythonの[...]の意味は何ですか?
- 21. Makefileの '%'の意味は何ですか?
- 22. タイコの$の意味は何ですか
- 23. "* ngFor"の "*"の意味は何ですか?
- 24. Perlの=〜の意味は何ですか?
- 25. numpyの '*'の意味は何ですか?
- 26. os.pathの "./"の意味は何ですか?
- 27. 意味は何ですか - [[NodeJSでは?
- 28. CSSの意味は何ですか?
- 29. forループの意味は何ですか?
- 30. x [:] = yの意味は何ですか?
MSDNの関連ドキュメントはありますか?もしそうなら、あなたはどのような部分を理解するのに困っていますか? – Luaan
この質問は研究努力を示していません。 –
@MartinSmith T-SQLブックの 'for xml'文書は良いスタートです:) – Luaan