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


Responder a