DECLARE @xml xml SET @Xml = '<FIELD NAME="NAME" BASE="5179827" COUNT="4"> <TOKEN TEXT="a">...</TOKEN> <TOKEN TEXT="b">...</TOKEN> <TOKEN TEXT="a">...</TOKEN> <TOKEN TEXT="b">...</TOKEN> <TOKEN TEXT="a">...</TOKEN> <TOKEN TEXT="c">...</TOKEN> </FIELD>' SELECT x.query('data(TOKEN/@TEXT)') AS List ,x.query('distinct-values(TOKEN/@TEXT)') AS DistinctList , x.query('<data> { for $x in distinct-values(TOKEN/@TEXT) return (concat($x, ",")) } </data> ').query('data/text()') AS CommaSeparatedList FROM @xml.nodes('/FIELD') AS d(x)
References
http://www.olcot.co.uk/sql-blogs/using-xquery-to-remove-duplicate-values-or-duplicate-nodes-from-an-xml-instance
No comments:
Post a Comment