Вот есть ?(Условие, Истина, Ложь) - здесь так задают с времен 77.
А вот в запросе написано ЕстьNULL(какое-то число, 0);
Процедуру назвали так, что всё-время хочется вбить первым параметром значение 0, т.к. удовлетворяет условию, а вторым значение... Из каких соображений сделали наоборот?
(0) Потому что так удобно.
при соединении 2х таблиц по полю, если в первой есть значение, берем первую, если null, то берем из второй. Это очень частая операция.