Eu tenho uma tabela com uma coluna xml. Xml é semelhante a
<Root>
<Row>
<user>abc</user>
<Rowid>1</Rowid>
</Row>
<Row>
<user>vf</user>
<Rowid>2</Rowid>
</Row>
<Row>
<user>ert</user>
<Rowid>3</Rowid>
</Row>
<Maxrowid>3</Maxrowid>
</Root>
Agora, abaixo da consulta, retorne a coluna sl_no e a coluna myxml das linhas que contêm a coluna xml com os valores 'abc' ou 'xyz' no nó 'user' (). Abaixo da consulta, estou usando a opção IN do sql.
SELECT
[mytable].[Sl_no],
[mytable].[myxmlcolumn]
FROM [mydb].dbo.[mytable]
WHERE
[myxmlcolumn].exist('for $x in /Root/Row where (($x/user[fn:upper-case(.)=(''ABC'',''XYZ'')])) return $x') > 0
Eu quero um tipo semelhante de consulta que faz o mesmo trabalho que o sql 'NOT IN'. Ou seja, no meu caso, quero que as linhas não tenham valores 'abc' ou 'xyz' no nó 'user' () na coluna xml. Então, por favor me ajude nisso.
fonte