» Início » Desenvolvimento » Banco de dados e SQL » SQL Server 2005 New Features: Os métodos XML - Parte 1
 
Avaliação: | Publicado em: 17/07/2007
SQL Server 2005 New Features: Os métodos XML - Parte 1


O método Exist

Esse método é muito útil para verificações de existência de determinados valores, sem que necessariamente o valor precise ser apresentado. Além da expressão XPath necessária, é preciso impor uma condição que retorne verdadeiro ou falso confirmando ou não a existência de determinados valores na estrutura do documento XML. Segue abaixo alguns exemplos:

-- Criação da tabela
CREATE TABLE #tblInvestimentos (
 CPF CHAR(11),
 AcoesAdquiridas XML)

-- Inserção de registros
INSERT INTO #tblInvestimentos
 (CPF, AcoesAdquiridas)
VALUES
 ('70014734590',
 '<?xml version="1.0"?>
 <Acoes Total="3">
  <Ativo Nome="GGBR4" Valor="50.15"/>
  <Ativo Nome="BBAS3" Valor="30.00"/>
  <Ativo Nome="BBDC4" Valor="49.30"/>
 </Acoes>'
)

INSERT INTO #tblInvestimentos
 (CPF, AcoesAdquiridas)
VALUES
 ('05249715300',
 '<?xml version="1.0"?>
 <Acoes Total="1">
  <Ativo Nome="KLBN4" Valor="6.90"/>
 </Acoes>'
)

INSERT INTO #tblInvestimentos
 (CPF, AcoesAdquiridas)
VALUES
 ('89241765301',
 '<?xml version="1.0"?>
 <Acoes Total="2">
  <Ativo Nome="CMIG4" Valor="41.75"/>
  <Ativo Nome="GOLL4" Valor="49.90"/>
 </Acoes>'
)

-- Verifica se os clientes adquiriram o ativo GGBR4
SELECT
 CPF As Cliente,
 AcoesAdquiridas.exist('/Acoes/Ativo[@Nome="GGBR4"]')
  As GGBR4
FROM
 #tblInvestimentos

-- Verifica se os clientes possuem mais de um ativo
SELECT
 CPF,
 AcoesAdquiridas.exist('/Acoes[@Total>1]')
  As [Diversificacao]
FROM
 #tblInvestimentos

DROP TABLE #tblInvestimentos

Este artigo é a parte 1 de 2 da seguinte série:
  1. SQL Server 2005 New Features: Os métodos XML - Parte 1
  2. SQL Server 2005 New Features: Os métodos XML - Parte 2

Prático! Objetivo! Claro! Linguagem Simples e estruturada, Excelente didática! Material muito bem planejado e blilhantemente elaborado!!!