|
||
|
|
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 SubqueriesA utilização de subqueries de expressão (aquelas que retornam colunas) permite que para cada cliente seja retornado uma coluna com cada tipo possível de telefone. Se for possível retornar cada telefone em uma única coluna, é possível concatená-los e fazer as formatações desejadas. Use Testes; -- Definição de CTEs NomesTelefones (Nome, TelRes, TelCelular, TelTrabalho, TelOutro) TelefonesFormatados (Cliente, Contato) No código apresentado, foram definidas duas CTEs (TF e NomesTelefones). A primeira CTE formatou o telefone colocando o seu tipo (C, R, T ou O) e o número do telefone. A segunda CTE fez uma subquery que retornou um número de telefone possível de acordo com seu tipo. Para cada cliente, haverá uma coluna com um tipo de telefone. -- Teste das CTEs Após a definição da CTE, basta executar uma instrução SELECT que a referencie. Embora o código tenha sido demonstrado em partes, para que as CTEs possam ser utilizadas, é preciso declará-las e referenciá-las na mesma execução. Essa solução é bem simples e pode ser utilizada em outros SGBDs (com as adaptações para aqueles que não dão suporte a CTEs). No entanto, ela possui três desvantagens. A primeira desvantagem é que ela pressupõe um conjunto fixo de telefones possíveis. Se um determinado cliente puder ter vinte números de telefones, será necessário efetuar vinte subqueries para recuperar os números de telefones e nesse caso a solução pode não ser eficiente. A segunda desvantagem é que são considerados o número máximo de telefones possíveis. Mesmo que nenhum cliente tenha todos os telefones, para cada cliente todas as possibilidades serão consideradas. Se os clientes tiverem em média um único telefone, mas houver quatro possibilidade, haverá quatro consultas sendo que dessas quatro, três retornarão nulo. A terceira desvantagem é que essa técnica pressupõe que cada cliente possui no máximo um número para cada tipo de telefone. Se algum cliente, por ventura, possuir mais de um celular ou telefone residencial, o uso de subqueries apresenta limitações. É sabido que subqueries podem provocar certo overhead (principalmente quando avaliadas linha a linha). Para reduzir sensivelmente esse overhead, é recomendável que o campo participante da subquery seja indexado (nesse caso o campo CliCodigo). 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 ![]() ![]() ![]() ![]() ![]() ![]() |
|
|