在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
我做错了什么?
答案 0 :(得分:1)
请改用此XPath:
SELECT @x.value('(//Data/Preference)[1]','varchar(20)') AS Preference
所有XPath阵列都是从1开始 - 而不是从0开始 - 因此您的[0]
不会返回任何内容。
其次,<Preference>
是一个XML元素 - 而不是属性。您拥有的@Preference
正在尝试选择XML 属性