|
||
|
|
Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Banco de dados e SQL » SQL Server 2005 T-SQL Tips: Concatenando e Agrupando
--> |
|
Avaliação:
![]() ![]() ![]() ![]() | Publicado em: 05/02/2008SQL Server 2005 T-SQL Tips: Concatenando e Agrupando
Concatenação com CursoresOs cursores podem ser utilizados para realizar a concatenação dos telefones. Como os cursores permitem a execução lógicas procedurais (em contraposição à lógica declarativa da SQL), é possível realizar operações linha a linha com mais facilidade. Nesse caso, toda vez que uma linha com um novo cliente for lida, acumula-se cada telefone em uma variável delimitando-o. Quando a relação de telefones daquele cliente for concluída, repete-se o processo para o próximo cliente até que todos os clientes e seus telefones tenham sido lidos. Use Testes -- Declaração de Variáveis Auxiliares DECLARE SET @ContatoAnt = '' DECLARE Telefones CURSOR OPEN Telefones FETCH NEXT FROM Telefones INTO @CliCodigo, @Contato WHILE (@@FETCH_STATUS = 0) IF (@CliCodigoAnt != @CliCodigo) INSERT INTO @Telefones VALUES (@CliCodigoAnt, @ContatoAnt) INSERT INTO @Telefones VALUES (@CliCodigoAnt, @ContatoAnt) CLOSE Telefones SELECT Para que os resultados possam ser lidos em uma instrução SELECT, é preciso armazenar os resultados em uma tabela. Para esse armazenamento, utilizou-se das variáveis do tipo TABLE. É possível utilizar mais de um cursor para realizar essa formatação, mas cursores costumam ser onerosos e nesse caso optei por utilizar um único cursor (ainda que um pouco mais complexo). A solução de cursores é mais flexível que a solução das subqueries, uma vez que irá retornar apenas os telefones realmente existentes. Essa solução considera apenas os telefones que existem e não os que poderão existir. Com as devidas adaptações ela também supera outras limitações da utilização de subqueries como mais de uma ocorrência com um mesmo tipo. Ainda assim, visto que um cursor foi utilizado, é possível que o desempenho das subqueries seja superior se a quantidade de registros existentes for próxima da quantidade de registros possíveis e se o número de registros for muito grande. Cursores permitem operações linha a linha, mas trazem um overhead adicional ao banco de dados. Darlan <darlan_gatinho1@hotmail>
Eh massa mais naum consigo instala tem como ajudar ::?? Pelo Amor de Deus MAIS SERIO Mermu ajuda aeee Se Pode=D
Fica Com Deus ![]() ![]() ![]() ![]() ![]() ![]() |
|
|