2
我已经编写了一个接口与CubeIQ BlackBox(www.magiclogic.com)进行交互,并且我有一个SQL Server 2005数据库表,其中存储了一些常规文本字段,日期和具有XML数据类型的列中的两段XML。从存储在XML数据类型中的XML查询属性和节点值
我想从XML中挑出一些值,但我无法弄清楚如何查询XML或该XML内节点的属性。
这里是我想要做的查询类型:
SELECT
[regular_table_field1],
[regular_table_field2],
[opt_resposne_xml][email protected]('someattribute') AS 'someattribute',
[opt_resposne_xml][email protected]('someattribute2') AS 'someattribute2'
FROM [optimizations] WHERE [opt_concept_id] = '1234'
非常感谢你。我找到了解释过程如何工作但无法使查询正常工作的语法的MSDN文章。你能解释一下为什么你必须把XPath查询放在(parens)中,为什么最后有一个[1]?这是在一组节点中指定该属性的第一个,第二个第三个等外观的方式吗? – DirtyBirdNJ 2011-06-01 20:42:16
为什么选择parens?我不知道 - 你得问问定义这一点的微软设计师。 '[1]'表示第一次出现 - 如果您想将其转换为单个数据值,则需要确保它只是返回一个XML节点/属性。是的 - 你也可以使用'[2]'获得第二个 - 但要小心,以确保有第二个.... – 2011-06-01 20:43:49
我实际上是在试图看看它会如何工作......如果我离开[1]我得到一个错误......因为没有[2]它会返回NULL,如果我使用它。我基本上是写这个完全相同的查询,但没有额外的parens和括号内的索引指标。 – DirtyBirdNJ 2011-06-01 20:51:03