【发布时间】:2014-07-04 00:59:15
【问题描述】:
在我的数据库中的一个表中,我有一列,其中整个条目是一个长 XML 字符串,其结构如下:
<Group1>
<Title>
<Name>John Doe</Name>
<Phone>555-3421</Phone>
<Email>catman@gmail.com</Email>
(+more)
</Title>
</Group1>
这是我的 SELECT 语句,它的输出如下:
SELECT TheKey, TheData FROM MyTable;
SQL Server Management Studio 中的输出:
TheKey TheData
10000 <Group1><Title><Name>John Doe</Name><Phone>893-3421</Phone><Email>catman@gmail.com</Email></Title></Group1>
10001 <Group1><Title><Name>Mary Sue</Name><Phone>381-2342</Phone><Email>thebestdude@gmail.com</Email></Title></Group1>
10002 <Group1><Title><Name>Mark Dark</Name><Phone>312-7626</Phone><Email>mybook231@gmail.com</Email></Title></Group1>
10003 <Group1><Title><Name>Garth Dan</Name><Phone>341-4572</Phone><Email>lampshade032@gmail.com</Email><State>California</State></Title></Group1>
我想编写某种 MS SQL 查询,它将这样的数据返回给我:
TheKey Name Phone Email State
10000 John Doe 893-3421 catman@gmail.com NULL
10001 Mary Sue 381-2342 thebestdude@gmail.com NULL
10002 Mark Dark 312-7626 mybook231@gmail.com NULL
10003 Garth Dan 341-4572 lampshade032@gmail.com California
注意最后一个条目有一个额外的 XML 标记 <State>,而其他条目没有。我希望它像这样灵活 - 使用某种父/子引用?
我们将不胜感激任何帮助,我似乎在任何地方都找不到类似的东西 =)
【问题讨论】:
-
这是一个很好的问题。不幸的是,有人决定将这种格式的信息转储到 sql 表的一列中。但它也发生在我身上!