1

在一个 sql 查询中,我运行这些命令,无论我尝试什么,我都会得到 NUll。

DECLARE @x AS XML

SET @x = ' <Data> <Preference>Mail</Preference>   <Comment>Changed Contact Communication Preference due to customer unsubscribed</Comment>  </Data> '


SELECT @x.value('(//Data/@Preference)[0]','varchar(20)') AS Preference

我究竟做错了什么?

4

1 回答 1

1

请改用此 XPath:

SELECT @x.value('(//Data/Preference)[1]','varchar(20)') AS Preference

所有 XPath 数组都是从1开始的——不是从 0 开始的——因此你[0]不会返回任何东西。

其次,<Preference>是一个 XML 元素——而不是一个属性。@Preference您正在尝试选择XML属性

于 2012-08-23T16:19:38.593 回答