加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL替换所有NULL

发布时间:2020-12-12 16:27:31 所属栏目:MsSql教程 来源:网络整理
导读:我有一个大表,里面有一些NULL.从0表而不是NULL中选择表的最简单方法是什么. 或者如果没有简单的方法可以做到这一点,我愿意用表中的0替换所有空值. 有很多列,我不希望必须使用像ISNULL(FieldName,0)AS FieldName这样的列. 解决方法 正如许多人所说,最好的方法
我有一个大表,里面有一些NULL.从0表而不是NULL中选择表的最简单方法是什么.

或者如果没有简单的方法可以做到这一点,我愿意用表中的0替换所有空值.

有很多列,我不希望必须使用像ISNULL(FieldName,0)AS FieldName这样的列.

解决方法

正如许多人所说,最好的方法是ISNULL(),但是如果你想要一个简单的方法来生成所有那些ISNULL(),请使用以下代码:
SELECT 'ISNULL([' + COLUMN_NAME + '],' + 
  CASE 
    WHEN DATA_TYPE = 'bit' THEN '0'
    WHEN DATA_TYPE = 'int' THEN '0'
    WHEN DATA_TYPE = 'decimal' THEN '0'
    WHEN DATA_TYPE = 'date' THEN '''1/1/1900'''
    WHEN DATA_TYPE = 'datetime' THEN '''1/1/1900'''
    WHEN DATA_TYPE = 'uniqueidentifier' THEN '00000000-0000-0000-0000-000000000000'
    ELSE '''''' -- everything else get's an empty string
  END + ') AS [' + COLUMN_NAME + '],'
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TableName'

这将使繁琐的工作变得更加容易,然后您只需编辑输出以考虑各种字段类型(int,varchar,date等)

编辑:使用默认值计算各种数据类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读