Recursividade

CREATE TABLE empregado
(
  enome character varying(15) NOT NULL,
  cpf character(11) NOT NULL,
  nascimento date,
  endereco character varying(30),
  sexo character varying(30),
  salario double precision,
  superv character(11),
  dept integer,
  CONSTRAINT empregado_pkey PRIMARY KEY (cpf),
  CONSTRAINT fk_empregado_1 FOREIGN KEY (superv)
      REFERENCES empregado (cpf) MATCH SIMPLE

 );

Duvida estou usando o banco postgresql e quando realizo uma seleção para informar na tela nome e salário de todos os empregados que ganham mais que o seu supervisor não estou conseguindo êxito queria uma ajuda…

bom primeiro eu inserir empregados que tem supervisor e outros que não tem e logo após fiz o seguinte select:

select cpf, enome, salario, superv
from empregado e
where cpf = superv and superv <> null;

e o banco não retornou nada essa é minha duvida, por que que o banco não ta retornando nada se tem varias empregados com supervisor

Você tá comparando CPF com supervisor, o que não aparenta fazer muito sentido.
Seria algo do tipo:

SELECT e.nome,e.cpf,e.nascimento,e.salario.e.supervisor FROM
EMPREGEGADO e
INNER JOIN EMPREGADO s
ON e.superv = s.cpf
AND --ou where
e.salario > s.salario

Essa consulta faz um inner join da tabela Empregado com ela mesmo,assim você consegue trazer o empregador(tabela e) e supervisor(tabela s) e comparar os salarios.

valeu!