【发布时间】:2017-12-07 06:06:41
【问题描述】:
DECLARE @XMLData XML
SET @XMLData = '<ArrayOfAttributeValueDO>
<AttributeValueDO>
<AttributeID>421</AttributeID>
<AttributeValue>100% cotton pre-shrunk drill</AttributeValue>
</AttributeValueDO>
<AttributeValueDO>
<AttributeID>422</AttributeID>
<AttributeValue>190gsm</AttributeValue>
</AttributeValueDO>
<AttributeValueDO>
<AttributeID>1221</AttributeID>
<AttributeValue>Long Sleeve</AttributeValue>
</AttributeValueDO>
<AttributeValueDO>
<AttributeID>1481</AttributeID>
<AttributeValue>No</AttributeValue>
</AttributeValueDO>
</ArrayOfAttributeValueDO>'
鉴于上述示例,我如何通过搜索<AttributeID> 和<AttributeValue> 来获得特定的<AttributeValueDO>?
我有点期待这样的语法,但在“[]”之间有错误
事实上,我正在尝试获取任何 <AttributeValueDO> 与 422 的 attributeID 和 attributeValue 包含“gsm”字样
DECLARE @strAttributeID VARCHAR(1000) = '422'
DECLARE @strAttributeValue VARCHAR(1000) = '190gsm'
SELECT [AttributeValueXML]
FROM [dbo].[tbl_Stock_Master_AttributeValue]
WHERE [AttributeValueXML].exist('(/ArrayOfAttributeValueDO/AttributeValueDO[AttributeID=sql:variable("@strAttributeID") && AttributeValue=sql:variable("@strAttributeValue")])') = 1
【问题讨论】:
-
不是
and而不是&&吗?另外,请在您的问题中包含您收到的完整错误消息(为了便于阅读,请加引号)。
标签: sql-server xml tsql xquery