xml列を持つテーブルがあります。Xmlは
<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>
次に、以下のクエリは、ノード 'user'()に値 'abc'または 'xyz'を含むxml列を含む行のsl_no列とmyxmlcolumnを返します。クエリの下では、SQLのINオプションに似ています。
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
SQL 'NOT IN'と同じように機能する同様のクエリが必要です。それは私の場合、xml列のノード「user」()に「abc」または「xyz」の値がない行が必要です。だから私を助けてください。