• 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) "It's a dog-eat-dog world, and I'm wearing Milk-Bone underwear." "Norm", on "Cheers". Also from "Cheers", from "Carla": "You need to know 3 things about Tortelli men: Tortelli men draw women like flies; Tortelli men treat women like flies; Tortelli men's brains are in their flies".