Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Querendo_ser_Nerd

single-row subquery returns more than one row

Recommended Posts

Se tem uma query do tipo :

 

select *
from tabela1
where tabela1.campo1 = (select id from tabela2 where ...)

Com o "=" a subquery deve retornar no máximo 1 registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesma coisa para select como colunas

 

Evite isto sempre que possível

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma solução que às vezes uso para estas colunas e criar FUNCTION que retornam valores unicos

 

Algo como (grosso modo)

 

create or replace funtion retorna_nome_cliente (pcodcli in number) return char
is
  vs_sai cliente.nome%type;
begin
  select nome into vs_sai from cliente where codcli = pcodcli;
  return vs_sai;
exception
  when other then
     return null;
end;

Usando

select ....,
       retorna_nome_cliente(vendas.codcli) nome_cliente,
       ...
from vendas ....
where ....

Isto pode ser útil também com funções que retornem coisas do tipo

 

Saldo devedor do cliente

Ultima compra

Etc

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.