• In order to accept and return differing data types, you'd have to use sql_variant, which will affect how easily you can use the value returned by the function:

    CREATE FUNCTION [dbo].[fnchkNull] (

    @colname sql_variant

    )

    RETURNS sql_variant

    AS

    BEGIN

    RETURN (

    SELECT CASE

    WHEN CAST(SQL_VARIANT_PROPERTY ( @colname , 'BaseType' ) AS varchar(30)) LIKE '%int%'

    THEN ISNULL(@colname, 0)

    WHEN @colname IS NULL OR @colname = '' OR @colname = 'NULL'

    THEN 'No Data'

    ELSE @colname

    END

    )

    END

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.