Aprenda PL/SQL

Retorno em apenas uma Linha

Tuning de Banco, Tuning de SQL, Ferramentas de tuning
  

Mensagemem Ter, 05 Abr 2011 10:34 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
scandolara

Mensagemem Ter, 05 Abr 2011 10:40 am

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

resultado linhas em coluna, algo assim,
diegolenhardt
Localização: Recife

Mensagemem Ter, 05 Abr 2011 11:12 am

dr_gori
Localização: Porto Alegre - RS

Mensagemem Sex, 06 Mai 2011 8:57 pm

Acredito que uma consultado tipo abaixo resolva:

select produto1 || produto2
from tabela
.
gustavosanmartin
Localização: salvador - bahia

Mensagemem Qui, 07 Jul 2011 9:57 am

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:
Código: Selecionar todos
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;
lmendes.cps
Localização: Campinas - SP

Mensagemem Sex, 15 Jul 2011 12:10 pm

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
sysdigo
Localização: SP

Mensagemem Sex, 15 Jul 2011 3:27 pm

Olá,

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

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

:-o
ishii
Localização: São Paulo - SP


Mensagemem Qua, 10 Ago 2011 8:27 pm

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
fbifabio
Localização: São Paulo - SP


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


Voltar para DBA Tuning

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante