O que estaria ocasionando este erro é a falta de entendimento do subselect.
.
Quando você faz no lugar do campo da tabela:
Selecionar tudo
case when c.fisjur in 'F' then
(SELECT f.cpf from fat_pessoa_fisica f)
você retorna TODAS as linhas da tabela onde deveria conter apenas UMA, a do select principal.
O select aguarda apenas um dado e você retorna TODO CONJUNTO de dados da tabela, aparecendo o "returns more than one row"(Retorna mais do que uma linha).
O que você deve fazer é garantir que o seu subselect contenha apenas a linha desejada, passando a chave ou id referência. Como:
Selecionar tudo
select
case when c.fisjur in 'F' then
(SELECT f.cpf from fat_pessoa_fisica f where f.cliente_id = c.cliente_id)
else
(SELECT to_number(j.cgc) from fat_pessoa_juridica j where j.cliente_id = c.cliente_id)
end CPF_CNPJ
from fat_cliente c