Como o exemplo usa ROW_NUMBER() OVER essa query funciona para vários nomes de tabelas (o que, no seu exemplo, significa funcionar para vários fornecedores). Vc pode experimentar simplesmente retirando a cláusula WHERE. O porém dessa solução é que se for em uma quantidade muito grande de registros a query pode ficar bem lenta...
Em 25 de abril de 2012 16:35, Marcos de Moura Gonçalves <mgmar...@gmail.com>escreveu: > Boa tarde Carlos, > > A solução de PIVOT proposta pelo Milton me parece a que melhor resolve da > forma como vc explicou. O único porém é que essa função só existe no 11g. > Se vc estiver em outra versão, ao invés de tranformar linhas em colunas > (comando PIVOT), vc pode concatenar várias linhas em uma única linha usando > CONNECT BY PRIOR, como no exemplo abaixo: > > SELECT x.table_name, > SUBSTR > (MAX (REPLACE (SYS_CONNECT_BY_PATH (x.column_name, '/'), > '/', > ' ' > ) > ), > 2 > ) concatenated_string > FROM (SELECT a.table_name, a.column_name, > ROW_NUMBER () OVER (PARTITION BY a.table_name ORDER BY > a.table_name) > > ROW_NUMBER > FROM user_tab_columns a > WHERE table_name = 'PAIS') x > START WITH x.ROW_NUMBER = 1 > CONNECT BY PRIOR x.table_name = x.table_name > AND PRIOR x.ROW_NUMBER = x.ROW_NUMBER - 1 > GROUP BY x.table_name; > Alterei o exemplo pra usar a view user_tab_columns já que todos acessam > ela. Altere a cláusula WHERE para um nome de tabela que vc possua e veja o > resultado. > > Att. > > Marcos > Em 25 de abril de 2012 15:49, Carlos Eduardo Goncalves < > cegoncalve...@yahoo.com.br> escreveu: > > ** >> >> >> Ricardo, >> >> Fiz o join com as tabelas >> Fornecedor >> For_Com (a qual posui os dois telefones cadastrados para o fornecedor) >> >> Olha a minha mensagem, por favor. >> Pode me ajudar com alguma ideia (e exemplo) >> De: Ricardo Arnoud <ricardo...@gmail.com> >> Para: oracle_br@yahoogrupos.com.br >> Enviadas: Quarta-feira, 25 de Abril de 2012 15:20 >> Assunto: Re: [oracle_br] Ajuda no Select para mostrar uma linha somente >> os 02 telefones >> >> >> >> Faz uma join e concatena o resultado como v.telefone1, x.telefone 2. >> >> Ricardo >> >> On Wed, Apr 25, 2012 at 3:16 PM, Nino <ninoba...@gmail.com> wrote: >> >> > vc nao pode fazer uma funcao que concatene todos os telefones do >> > fornecedor? >> > >> > >> > >> > On Wed, Apr 25, 2012 at 3:12 PM, Carlos Eduardo >> > <cegoncalve...@yahoo.com.br>wrote: >> > >> > > ** >> > > >> > > >> > > Amigos, boa tarde! >> > > >> > > Preciso mostrar o resultado abaio da seguinte maneira >> > > >> > > Codigo Fornecedor Ds_For_Com >> > > 5572 9999-9999 8888-8888 >> > > >> > > Ou seja, preciso mostrar em uma unica linha os 02 telefones que o >> > > fornecedor possui cadastrado. Mas não posso repetir as linhas duas, >> tres >> > > vezes.. >> > > >> > > A minha query esta assim: >> > > >> > > select f.cd_fornecedor, ds_for_com from dbamv.fornecedor f, >> dbamv.for_com >> > > c where f.cd_fornecedor = 5572 >> > > and f.cd_fornecedor=c.cd_fornecedor >> > > >> > > Resultado: >> > > >> > > Codigo Fornecedor Ds_For_Com >> > > 5572 9999-9999 >> > > 5572 8888-8888 >> > > >> > > Se alguem puder me ajudar, eu agradeço. >> > > >> > > Obg! >> > > >> > > >> > > >> > >> > >> > [As partes desta mensagem que não continham texto foram removidas] >> > >> > >> > >> > ------------------------------------ >> > >> > >> > ---------------------------------------------------------- >> > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de >> > inteira responsabilidade de seus remetentes. >> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ >> > >> > ---------------------------------------------------------- >> > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » >> > Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO >> ESPAÇO! >> > VISITE: http://www.oraclebr.com.br/ >> > ---------------------------------------------------------- >> > Links do Yahoo! Grupos >> > >> > >> > >> >> -- >> -- >> Thanks, >> Ricardo Arnoud >> MCP, LPIC-1 >> (51) 8205-4658 >> MSN ricardo.arn...@hotmail.com >> >> "Não tenho vergonha de mudar de idéia, porque não tenho vergonha de >> pensar." >> >> [As partes desta mensagem que não continham texto foram removidas] >> >> [As partes desta mensagem que não continham texto foram removidas] >> >> >> > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html