自定义函数实现NULL值替换

数据库环境:SQL SERVER 2005

  有时候,想将查询查询数来的数据格式化一下,不希望显示NULL值,或者复制表的数据时,被插入的表不允许有NULL。

我们可以通过ISNULL()函数或者COALESCE()函数对数据进行转换。

  如果要转换的字段太多,不想一个个字段去转,是否有什么办法批量转换NULL值呢?

  实现思路:

  我们通过系统表sys.all_columns关联sys.types表找到某个表的所有字段及其类型,如果该字段是允许NULL的,则进行转换。

转换规则:如果是数值类型,则将NULL转换成0,否则,转换成空字符串。

  下面是SQL实现,已经将它封装到表变量中,需要的时候直接传个表名进去调用即可。

  View Code

  有一张testdemo表,表结构的定义语句如图1:

  执行SQL语句 “SELECT dbo.f_null_cast('testdemo') AS sql_text”,得到转换的结果如图2,图2的SQL是我用格式化工具

调整格式后的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值