Mais simples, mais curto, mais rápido:
EXISTS . IF EXISTS (SELECT 1 FROM people p WHERE p.person_id = my_person_id) THEN
-- do something
END IF;
O planejador de consulta pode parar na primeira linha encontrada - ao contrário de
count() , que verificará todas as linhas (correspondentes) independentemente. Faz a diferença com mesas grandes. A diferença é pequena para uma condição em uma coluna exclusiva:apenas uma linha se qualifica e há um índice para pesquisá-la rapidamente. Você pode simplesmente usar um
SELECT vazio Lista:IF EXISTS (SELECT FROM people p WHERE p.person_id = my_person_id) THEN ...
O
SELECT list não tem influência no resultado de EXISTS . Apenas a existência de pelo menos uma linha de qualificação é importante.