Retorno em apenas uma Linha

Tuning de Banco, Tuning de SQL, Ferramentas de tuning
Responder
scandolara
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sex, 25 Jun 2004 9:18 am

PessoALL por favor,

Tenho uma consulta SQL que esta me retornando 2 linhas, ou seja, 2 descricao .
Eu preciso que essa consulta retorne ao invés de 2 linhas, apenas 1 .
Exemplo :

select nomeproduto from produto where familiaproduto = 'FAMILIA'

resultado é =
Produto01
Produto02

Mas preciso retornar
Produto01 / Produto02

Como faço isso ?

Obrigado
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Existem vários tópicos no fórum, pesquisa por

resultado linhas em coluna, algo assim,
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:

gustavosanmartin
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Ter, 09 Jun 2009 10:46 am
Localização: salvador - bahia

Acredito que uma consultado tipo abaixo resolva:

Selecionar tudo

select produto1 || produto2
from tabela
lmendes.cps
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Seg, 20 Jun 2011 2:14 pm
Localização: Campinas - SP

Cara, acredito que com select será complicado, você pode fazer uma função com um cursor que monte a string da maneira como você deseja. Exemplo:

Selecionar tudo

create or replace function conc_resultado(scondicao in varchar) return varchar2 is
  Result varchar2(32000);
  cursor c is
   select familia from produtos where familia = scondicao;
begin
    for r in c loop
       result := result ||'/'|| r.familia; 
    end loop; 
    return(Result);
end conc_resultado; 
sysdigo
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Sáb, 12 Dez 2009 7:44 pm
Localização: SP

Concordo com Imendes.

Em resumo você está querendo trasformar linhas em colunas. Certo?
O problema é que as linhas crescem na medida em que novos registros são inseridos. Portanto, precisa ser algo dinâmico como o Imendes apresentou.
Pesquise aqui mesmo no forum: como transformar linhas em colunas.

Abraços
ishii
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 82
Registrado em: Ter, 28 Dez 2010 7:41 pm
Localização: São Paulo - SP

Olá,

Dê uma olhada nesse link e veja se te ajuda...

http://www.dba-oracle.com/t_converting_rows_columns.htm

:-o
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:

Se você estiver usando Oracle 11G, use a função analitica LISTAGG. Veja o link http://www.oracle-base.com/articles/mis ... niques.php.

No meu treinamento de tuning BD SQL no Oracle (10g e 11g) eu ensino como utilizar estas funções. Ver http://www.fabioprado.net/p/treinamentos.html

Att,

Fábio Prado
www.fabioprado.net
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes