Это странный совет. Функция NVL работает следующим образом:
NVL(exp1, val1)
Если 'exp1' не равно нулю, оно возвращается; в противном случае возвращается «val1».
Поскольку в данном примере «FT» не может иметь значение NULL, использование функции NVL бесполезно и небольшое снижение производительности (по крайней мере, для оптимизатора выясняется, что NVL является избыточным; возможно, штраф за выполнение, если оптимизатор) не получается, что NVL избыточен).
Если условие читается:
AND emp.pay_type = NVL ("FT", UID)
тогда может быть польза; здесь у нас есть идентификатор с разделителями (имя столбца заключено в двойные кавычки), и значение столбца может быть NULL; вызов NVL гарантирует, что NULL будет возвращен, только если «FT» равен NULL , а UID равен NULL. UID - это, конечно, обычный идентификатор.
Это может иметь смысл, если условие гласит:
AND emp.pay_type = NVL(UID, 'FT')
Теперь, если значение UID равно NULL, в качестве соответствующего pay_type используется значение по умолчанию «FT».