是否可以创建一个返回类型与第一个参数相同的udf。
其他说明:
http://msdn.microsoft.com/en-us/library/aa933210(v=SQL.80).aspx
答案 0 :(得分:1)
您可以尝试将sql_variant数据类型用于UDF。 (我没有BTW)
但是,简单的内联ISNULL仍然使用第一个参数的数据类型。
除非你没有在关于你打算实现什么的问题上给我们完整的信息......
编辑:更新后
ISNULL的重点是用值(第二个参数)替换NULL(第一个参数)。
没有NULL的“类型”。 int或varchar可以采用NULL值。但它仍然是基本数据类型
ISNULL无论如何都将第二个参数约束到第一个类型:第二个参数必须是可隐式转换的。因此SELECT ISNULL(CAST(NULL AS int), 'foo')
将失败
所以,使用符合你想要的内联ISNULL。不需要udf
评论后编辑
你不能有一个udf来覆盖所有数据类型。
尤其是,udf只有一个返回数据类型。
答案 1 :(得分:0)
SQL Server的ISNULL()
,正如您所指出的,需要2个参数,第一个是任何类型的表达式,第二个是第一个arg为null时的替换。它返回与被检查的arg相同的类型。
check_expression:要检查表达式是否为NULL。 check_expression可以是任何类型。
replacement_value:如果check_expression为NULL,则返回表达式。 replacement_value 必须与check_expression 具有相同的类型。
返回类型:返回相同类型和check_expression。
从您编辑的问题中听起来好像ISNULL已经完成了您所追求的目标。