loading..
Русский    English
04:28
листать

Методы типа данных XML стр. 2

Метод query()

В общем случае этот метод принимает на вход выражение XPath и возвращает новый XML документ.

Выражение XPath '/albums/album[2]/labels/label[1]' указывает, что мы хотим получить первый лейбл второго альбома для каждого исполнителя.

Метод query() возвращает фрагмент XML документа, содержащий всё между начальным и конечным тегами элемента "label", включая и сам элемент.

Консоль
Выполнить
  1. SELECT name, xmlData.query('/albums/album[2]/labels/label[1]') AS SecondAlbumLabel
  2. FROM dbo.tArtist;

name           SecondAlbumLabel
Radiohead     
Guns N’ Roses 

Рассмотрим другой пример. Нужно найти такие альбомы, в описании которых есть слово "record".

  1. SELECT name,
  2. xmlData.query ('/albums/album[description[contains(., "record")]]') AS ContainsRecord
  3. FROM dbo.tArtist;

Если детально разобрать выражение XPath, то можно его описать следующей фразой: найти в списке альбомов (albums) такие альбомы (album), у которых имеется описание (description), содержащее слово "record" (contains(., "record")). Точка в функции contains() означает обращение к содержимому текущего элемента, в данном случае это элемент description.

name           ContainsRecord
Radiohead     
Guns N’ Roses  ...

Видим, что такой альбом нашёлся только у группы Guns N' Roses. Но у группы Radiohead в описании альбома OK Computer встречается слово "Records". Этот альбом не нашёлся, т.к. XQuery чувствителен к регистру. Чтобы данный альбом тоже был найден, используем функцию lower-case(), приводящую обрабатываемый текст к нижнему регистру.

  1. SELECT name,
  2. xmlData.query ('/albums/album[description[contains(lower-case(.), "record")]]')
  3. AS ContainsRecord
  4. FROM dbo.tArtist;

name           ContainsRecord
Radiohead      ...
Guns N’ Roses  ...


Bookmark and Share
Страницы: 1 2 3 4 5 6
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
несколько дней назад
https://exchangesumo.com/obmen/PPRUB-CARDBYN/ . Перевозки из Варшавы в Россию
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100