将 local-name() 从 MSSQL 转换为 MySQL

发布于 2025-01-15 08:07:48 字数 1233 浏览 0 评论 0原文

我正在努力将一些代码从 MSSQL 迁移到 MySQL,但我不知道 MySQL 中 local-name() 的等效项。

原始MSSQL代码如下:

with cte as (select convert(xml,'<Attributes>
    <Map>
        <entry key="trigger" value = "action">
            <value>
                <Map>
                    <entry key=" Processing">
                        <value>
                            <Boolean>true</Boolean>
                        </value>
                    </entry>
                </Map>
            </value>
        </entry>
    </Map>
</Attributes>') as attributes)
select entr.value('@key','nvarchar(100)') AS AttrKey
      ,entr.value('@value','nvarchar(500)') AS AttrValue
      ,HasValueElement.value('local-name(.)','nvarchar(100)') AS ValueType
FROM cte a1
cross apply a1.attributes.nodes(N'/Attributes/Map/entry') A(entr)
OUTER APPLY A.entr.nodes(N'value/*') B(HasValueElement)

输出为: AttrKey ||AttrValue ||ValueType 触发器 ||Action ||Map

  1. 我们如何应用类似于 MySQL 中的 local-name() 来返回 ValueType = "Map"?当我在 MySQL 中尝试类似“//*[local-name()]”时,它返回错误。

  2. “.”是什么? “local-name(.)”是什么意思?

非常感谢您的支持。

TIA

I'm working on migrating some codes from MSSQL to MySQL, but I don't know the equivalent of local-name()in MySQL.

The original MSSQL code is as followed:

with cte as (select convert(xml,'<Attributes>
    <Map>
        <entry key="trigger" value = "action">
            <value>
                <Map>
                    <entry key=" Processing">
                        <value>
                            <Boolean>true</Boolean>
                        </value>
                    </entry>
                </Map>
            </value>
        </entry>
    </Map>
</Attributes>') as attributes)
select entr.value('@key','nvarchar(100)') AS AttrKey
      ,entr.value('@value','nvarchar(500)') AS AttrValue
      ,HasValueElement.value('local-name(.)','nvarchar(100)') AS ValueType
FROM cte a1
cross apply a1.attributes.nodes(N'/Attributes/Map/entry') A(entr)
OUTER APPLY A.entr.nodes(N'value/*') B(HasValueElement)

The output is:
AttrKey ||AttrValue ||ValueType
Trigger ||Action ||Map

  1. How we can apply similar to local-name() in MySQL to return the ValueType = "Map"? When I tried something like "//*[local-name()]" in MySQL, it returned error.

  2. And what is the "." in "local-name(.)" meaning?

Really appreciate your support.

TIA

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文