【发布时间】:2011-10-27 16:15:51
【问题描述】:
我得到了一个包含以下列和一些示例数据的表格:
ID Title FieldsXml [nvarchar(max)]
-- ----- -------------------------
1 A <Fields><Field Name="X">x1</Field><Field Name="Y">y1</Field></Fields>
2 B <Fields><Field Name="Y">y2</Field><Field Name="Z">z2</Field></Fields>
3 C <Fields><Field Name="Z">z3</Field></Fields>
我需要查询它以获得这样的结果:
ID Title X Y Z
-- ----- -- -- --
1 A x1 y1
2 B y2 z2
3 C z3
xml 字段应该保证格式正确并匹配架构,即使它是 nvarchar 而不是 xml 类型。但是,Name 属性的值并不能提前知道。
我使用的是 SQL Server 2008。如有必要,我可以使用存储过程,但我正在寻找一种可以避免这种情况并避免动态 SQL 的解决方案。这样的查询是不是不能写?
如果存储过程或动态 sql 是唯一的方法,我愿意使用它的解决方案。
【问题讨论】:
-
如果没有动态 SQL,就不可能有动态/可变数量的列。
标签: sql xml sql-server-2008 sqlxml dynamic-columns