您好我有以下 SQL 来尝试解析 xml 并提取“OrderNumber”。我遇到的问题是这个 xml(我无法控制)有一个奇怪的 xml 命名空间。我只是为了这个例子把它改成了 abc.com,但它是别的东西。无论如何,当存在该命名空间时,T-SQL 在结果中返回空值。所以它不能很好地与命名空间配合使用。如果我手动删除命名空间或通过 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)')