|
||
|
|
» 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
Gustavo Maia Aguiar é administrador de Empresas pela Universidade de Brasília (UnB) e pós-graduado em bancos de dados pela Universidade Católica de Brasília (UCB), atua na área de tecnologia de informação desde 2001, exercendo funções de desenvolvedor, analista, administrador de banco de dados (DBA) e administrador de dados (AD). É profissional certificado (MOS, MCDBA, MCAD, MCTS (SQL 2005), MCITP (DB Dev), MCITP (DB Admin), MCT e Itil Certified Professional) e suas áreas de interesse incluem .NET, XML, SQL Server, banco de dados em geral e Business Intelligence. É membro ativo dos fóruns MSDN e TechNet além de moderador da comunidade SQL Server Brasil (Orkut).
Em alguns fóruns, comunidades e grupos de e-mail dos quais participo, tenho visto uma dúvida bastante comum referente a manipulação de strings. As frases abaixo relatam bem o que quero dizer. Se você se identificar com alguma delas, certamente esse deve ser um artigo esperado já que em poucos lugares encontrei as soluções.
Em minha opinião, juntar vários registros em uma única coluna delimitada por ponto e vírgula é sem dúvida uma necessidade de formatação de dados. As boas práticas da arquitetura N camadas condenam esse tipo de prática e certamente as camadas de apresentação e aplicação são bem mais adequadas a "separar" registros e delimitá-los com ponto e vírgula. Sou árduo defensor dessas práticas, mas assim como toda regra, existem momentos em que podem haver exceções. Se houver a disponibilidade de uma ferramenta de terceiros, de um componente (gratuito, pago ou desenvolvido em casa) ou de algum código pronto (ainda que complexo) para realizar tarefas de formatação, talvez não seja uma boa idéia colocar esse tipo de lógica na camada de banco de dados. Essa camada deve estar disponível para a realização de consultas rápidas, operações eficientes de manipulação (Ins, Upd, Del) e gerenciamento eficiente de recursos de memória e não "desperdiçar" recursos de memória, CPU e disco realizando manipulações de string, formatações de datas, etc. No entanto, em determinadas situações, construir uma lógica ou obter um componente ou ferramenta pode não ser uma alternativa viável. Nesse momento, colocar determinados "comportamentos" dentro do banco de dados é algo a ser considerado quando não a única saída. Ainda acho que a delimitação por ponto e vírgula não cabe à camada de dados, mas de qualquer forma, para essas situações em que não tem outro jeito, escrevo esse artigo com algumas formas de como concatenar vários registros em uma única coluna delimitada por ponto e vírgula. Nesse artigo apresentarei cinco técnicas demonstrando como fazer isso no SQL Server. Algumas podem ser utilizadas nas versões 7 e 2000 (com as devidas adaptações) enquanto outras funcionam apenas no SQL Server 2005. Fiz uma extensa utilização das Common Table Expressions (CTEs) em algumas alternativas para facilitar as consultas. Aqueles que ainda não conhecem as CTEs podem ler a respeito ao término do artigo na sessão de links relacionados. 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 ![]() ![]() ![]() ![]() ![]() ![]() |
|
|