【发布时间】:2020-01-20 10:22:20
【问题描述】:
我的表格有一列具有 xml 数据类型,并包含 xml 格式的值。
例如
<row><A>1</A><B>xyz</B></row>
<row><A>2</A><B>jkl</B></row>
并希望在表格中输出:
-------------
| A | B |
-------------
| 1 | xyz |
| 2 | jkl |
-------------
我想动态显示这样的输出。是否有任何函数可以将xml数据返回到表中?
【问题讨论】:
-
动态显示是什么意思?你需要什么是动态的?
-
T-SQL 讨厌动态结果集(通常;这不限于 XML)。您可以使用 XML 方法(
.nodes、.query、.value)来获取您喜欢的 XML 的任何部分,但不能以动态列的形式(名称或类型),而OPENXML想要一个模式,否则它返回一个通用表。如果您知道您的数据看起来完全像这样,您可以编写一个查询将其转换为一个行集。否则,您要么需要使用动态 SQL 变得丑陋,要么将其留给客户端。 -
@Larnu - 所有列都应动态获取,无需指定列名,类型
-
SQL 不是这样工作的,@vinGa。这就像期待输入命令“
MyTable”并期待 SQL Server 知道您想要SELECT来自它的所有列,以及可以通过外键找到的任何相关行。 您 需要告诉 SQL Server 您希望如何看到结果。
标签: sql sql-server xml