こんにちは私はxmlを解析して「OrderNumber」を抽出するために次のSQLを持っています。私が抱えている問題は、このxml(私は制御できません)に奇妙なxml名前空間があることです。この例のためだけにabc.comに変更しましたが、それは別のものです。とにかく、その名前空間が存在する場合、T-SQLは結果にnullを返します。そのため、名前空間とうまく連携しません。名前空間を手動で削除するか、T-SQLを介して検索と置換を行うと、問題なく機能します。私は検索と置換を行うことができると思いますが、その解決策は私を悩ませます。他の誰かがこれを回避するためのより良い方法を今持っているかどうか疑問に思っていましたか?そして多分それが名前空間を好まない理由の説明?本当にアドバイスをいただければ幸いです。ありがとう!
Declare @Transmission xml
set @Transmission = '<Transmission>
<Requests>
<SubmitOrdersRequest>
<Orders>
<Order xmlns="http://www.abc.com">
<OrderNumber>123</OrderNumber>
</Order>
</Orders>
</SubmitOrdersRequest>
</Requests>
</Transmission>'
select @Transmission.value('(Transmission/Requests/SubmitOrdersRequest/Orders/Order/OrderNumber/text())[1]', 'varchar(100)')