code: def coalesce(*args) -> Expression:
      """
      Returns the first argument that is not NULL.
  
      If all arguments are NULL, it returns NULL as well.
      The return type is the least restrictive, common type of all of its arguments.
      The return type is nullable if all arguments are nullable as well.
  
      Examples:
      ::
  
          >>> coalesce(None, "default") # Returns "default"
          >>> # Returns the first non-null value among f0 and f1,
          >>> # or "default" if f0 and f1 are both null
          >>> coalesce(col("f0"), col("f1"), "default")
  
      :param args: the input expressions.
      """
      gateway = get_gateway()
      args = to_jarray(
          gateway.jvm.Object,
          [_get_java_expression(arg) for arg in args],
      )
      return _unary_op("coalesce", args)
  
imports: from typing import Union
  from pyflink import add_version_doc
  from pyflink.java_gateway import get_gateway
  from pyflink.table.expression import Expression, _get_java_expression, TimePointUnit, JsonOnNull
  from pyflink.table.types import _to_java_data_type, DataType
  from pyflink.table.udf import UserDefinedFunctionWrapper
  from pyflink.util.java_utils import to_jarray, load_java_class
label_desc: Use image node_id 48 for calling a global function with example usage: coalesce() and returns: _unary_op