【发布时间】:2010-01-05 23:36:54
【问题描述】:
我正在使用 SQL Server 2005。
假设我有一个这样的文档:
<Item Type="Menu" Name="File">
<Item Type="Selectable" Id="Open"/>
<Item Type="Selectable" Id="Close"/>
<Item Type="Menu" Name="Export"/>
<Item Type="Selectable" Id="As JPEG"/>
....
and so on, with N-level of menus
如何将其转换为带有列的 SQL 表:
可选、Level1Menu、Level2Menu、Level3Menu
其中 Open 和 Close 会将 File 设置为 level1Menu 并且所有 Menu 列都为 NULL, 但由于 JPEG 的文件和导出为 level1Menu 和 level2Menu,否则为 NULL。
谢谢。
【问题讨论】:
-
我会认真考虑将您的表结构作为多列定义进行审查,因为您暗示这将是一场噩梦。正如 Rubens Faria 的回答中的链接所指出的,与这样的多列相比,使用分层表(即自引用表)会更好。
-
@Paulo - 感谢您的关注,那么如何将上述 XML 转换为只有两列的自引用表? - 我想我需要使用我的 XML 并执行 Ruben 的答案显示的逆运算。到那时,自我加入表并生成我最初寻找的内容变得微不足道。
标签: sql-server-2005 parsing xml-parsing