自定义SQL函数 让ISNULL支持NULL和空字符串

sql 自带的 isnull(值,默认值) 函数 只适用于 值为 null 的情况,

如果值为 '' 空字符串(不为null ), 就失效了...

自己动手写一个简单的SQL函数,来实现支持 NULL和 ' ' 空字符串 这两种情况的 判断


创建 标量值函数 如下:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION F_ISNULL --自定义函数名称
(
	@parameter varchar(100),--参数1
	@default varchar(100)--参数2(如果参数1为NULL或者为''空字符串,则返回: 参数2)
)

returns  varchar(100)--返回值的类型
AS
BEGIN

	declare @return varchar(100);
	set @return = (
	select 
	case
		when @parameter is null then @default --参数1为null,返回参数2 
		when LTRIM(RTRIM(@parameter)) = '' then @default --参数1为''空字符串,返回参数2 	
		when LTRIM(RTRIM(@parameter)) != '' then @parameter --参数1有值,返回参数1	
		else @default end --返回参数2
	)
	return @return --返回值
END
GO

调用方式如下:

[dbo].F_ISNULL(sysdate,getdate()) --如果sysdate的值为null或者'',则用getdate()来取代

调用自定义函数,必须写上: [dbo].


测试一下:

select [dbo].[F_ISNULL]('  ',NEWID())
union all
select [dbo].[F_ISNULL](null,NEWID())
union all
select [dbo].[F_ISNULL](getdate(),NEWID())

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值