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.