Select row from non-empty node value in xml column using xml query

  • I am trying to select the rows from the table by putting the condition on the xml column. The condition like if there is date value on the node ‘Completedon’ in the xml column then select that row.

    For this above requirement I wrote one query, that is

    SELECT [Tasks].* FROM [TaskManager].dbo.[Tasks] WHERE ( [Work details].exist('for $x in /Root/Row where ( (empty(xs:date($x/Completedon[1])) or ($x/Completedon[1])="") ) return $x')>0 )

    But in this above query, it selects all the rows which has the ‘Completedon’ node as well as the row without this node.

    Please help me, where did I go wrong? And please help me to correct the query..

    Thank you in advance…

  • Can you provide a sample table that has data that should not return rows as well as where you do want rows. Something like this:

    declare @t table (id int identity(1,1), xmldata xml);

    insert into @t

    values ('<x>this row returns</x>'), ('<x>this row does not return</x>');

    Russel Loski, MCSE Business Intelligence, Data Platform

Viewing 2 posts - 1 through 1 (of 1 total)

You must be logged in to reply to this topic. Login to reply