Метод value

Из предыдущих примеров уже должно быть понятно назначение этого метода. Его синтаксис:

value ('XQuery', SQLType [, noderef ])
  • XQuery – запрос XQuery.
  • SQLType – встроенный тип сервера.
  • noderef – ссылка на узел, относительно которого выполняется запрос.

Использование этого метода удобно для выбора определенных скалярных значений документа. Не стоит его использовать только для фильтрации результирующего набора, как показано ниже:

select fams.* from fams where fam::value('/fam/husband/@income', 'int') > 180

В результате выбираются все семьи, мужья в которых имеют доход больше 180. Это менее эффективно, чем использование метода exist (особенно при наличии индекса), который я описываю далее:

select fams.* from fams where fam::exist('/fam/husband[@income > 180]') = 1

Метод exist

Метод exist возвращает значение типа bit, равное:

  • 1, если результат выборки не является пустой последовательностью;
  • 0, если результат является пустой последовательностью;
  • NULL, если данный XML-документ пустой.

Вот синтаксис этого метода:

exist ('XQuery' [, noderef ])

Здесь:

  • XQuery – запрос XQuery;
  • noderef - ссылка на узел, относительно которого выполняется запрос.

Метод modify

Этот метод позволяет выполнять изменяющие XML-документ команды, речь о которых пойдет в разделе XML DML.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: