Разница между CASE и IF в PostgreSQL заключается в том, что CASE позволяет последовательно проверять несколько условий, а IF — выполнять блок кода, если условие истинно. 4
Оператор IF имеет простейшую форму IF-THEN, в которой операторы между THEN и END IF выполняются, если условие (логическое выражение) истинно. 1 В противном случае они опускаются. 1
Оператор CASE использует логику IF-THEN-ELSE внутри одного оператора и облегчает условные запросы, выполняя работу оператора IF-THEN-ELSE и применяя её к многим возможным условиям. 2
Таким образом, CASE позволяет учитывать множество условий, а IF — выполнять код только при истинности определённого условия.