Please help me to filter out only CustomerRet elements that DO NOT have child ParentRef element usign .exist().
declare @xml xml
SET @xml =
'<CustomerRet>
<ListID>160000-933272658</ListID>
<TimeCreated>1999-07-29T20:24:18+03:00</TimeCreated>
<TimeModified>2011-12-16T02:24:51+01:00</TimeModified>
<EditSequence>1323998691</EditSequence>
<IsActive>true</IsActive>
<ParentRef>
<ListID>150000-933272658</ListID>
<FullName>Abercrombie, Kristy</FullName>
</ParentRef>
</CustomerRet>
<CustomerRet>
<ListID>160000-93</ListID>
<TimeCreated>1999-07-29T20:24:18+03:00</TimeCreated>
<TimeModified>2011-12-16T02:24:51+01:00</TimeModified>
<EditSequence>1323998691</EditSequence>
<IsActive>true</IsActive>
</CustomerRet>'
-- correct result
SELECT
t.c.value('ListID[1]', 'nvarchar(50)') as [ciInfo3]
FROM @xml.nodes('/CustomerRet') as t(c)
OUTER APPLY t.c.nodes('ParentRef') as cus(c)
WHERE cus.c.value('ListID[1]', 'varchar(50)') IS NULL
--WHERE @xml.exist('ParentRef') = 0
-- Help make these work
SELECT
t.c.value('ListID[1]', 'nvarchar(50)') as [ciInfo3]
FROM @xml.nodes('/CustomerRet') as t(c)
WHERE @xml.exist('./ParentRef') = 0
SELECT
t.c.value('ListID[1]', 'nvarchar(50)') as [ciInfo3]
FROM @xml.nodes('/CustomerRet') as t(c)
WHERE @xml.exist('not(./ParentRef)') = 1
SELECT
t
FROM
@xml.nodes('/CustomerRet') as t(c)WHERE
"Farmer" <som...@somewhere.com> wrote in message news:87CA9DF3-3163-4811...@microsoft.com...
SELECT t.c.value('ListID[1]', 'nvarchar(50)') as [ciInfo3]
FROM @xml.nodes('/CustomerRet[not (ParentRef)]') as t(c)
"Farmer" wrote:
> I GOT IT! THANK YOU!
>
> SELECT
>
> t.c.value('ListID[1]', 'nvarchar(50)') as [ciInfo3]
>
> FROM @xml.nodes('/CustomerRet') as t(c)
>
> WHERE t.c.exist('./ParentRef') = 0
"Bob" <B...@discussions.microsoft.com> wrote in message
news:CE3F78B6-A8E6-48E8...@microsoft.com...