sql如何空值替换成null?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql如何空值替换成null?相关的知识,希望对你有一定的参考价值。

如图,怎么把空值转换为null

各个数据库都有空值操作函数,例如Oracle的nvl,mysql的ifnull,sqlserver的isnull等
都可以把空值替换成另外一个内容,你这里只需要把空值替换“null字符”就可以了。
oracle:select nvl(字段,'NULL') from ****
mysql:select ifnull(字段,''NULL'') from ****
sqlserver,也类似,我就不写了追问

isnull 是把NULL改成你想改成的值,isnull(参数1,参数2) 判断参数1 是否为NULL,如果是 返回参数2 否则返回参数1
我现在是要把空值('')改成null

追答

对啊,我的做法是把空值(null)转换为字符NULL,这样不就达到你的说法了吗?
比如原来的内容是 1,空值(两个字段) 那么现在就是1,NULL(两个字段,后面的null是通过isnull替换出来的字符),这样不就达到你的要求了吗。
当然这种做法有点投机取巧,不过至少表现结果是一致的。

追问

你没明白我的意思!你看我那个图片,我是要把第一行里面的空值,改成2、3、4行的null值或者别的值都可以,看有没有什么函数,本来想着用replace把空字段替换成null,结果好像不行replace(字段名,'','null')

追答

难道你那个是mysql的空值?不是null?好久没遇到这种啦。
干嘛插入空值啊,既有空值又有null是很烦的(毕竟处理起来还有有区别的,这不是属于给自己找麻烦吗),最简单的办法,直接update,把空值全改成null,这样就不会出这个问题了。
修改的话,实在不行可以用其他行的null值修改这个空值,这样就不会有问题了。
毕竟判断空值要用=或者,null值则直接可以用ifnull或者isnull处理
如果不想改,那就单独拿出来判断吧
select case when 字段='' then null else 字段 end a from table
不行的话,把null(null也比较特殊,要不然换一个字符试试)加上双引号(也可能是两层单引号(别嫌多,我曾经为了得到一个值套过四层单引号))
反正个人觉得如果有数据库的update权限的话,还是改了比较好,毕竟两个值都有处理起来还是不叫麻烦的。

参考技术A

语法:update 表名 set 字段名=null where 字段名=''

注意:

    null是个关键字,不要加任何符号

    ''代表空值

参考技术B update table set 字段 =case when len(ltrim(rtrim(字段)))=0 then NULL else 字段 end 参考技术C SELECT
CASE
WHEN rolename='' then NULL
ELSE rolename end rolename
FROM role

你如何将空值插入sql server

【中文标题】你如何将空值插入sql server【英文标题】:how do you insert null values into sql server 【发布时间】:2021-12-31 18:57:48 【问题描述】:

在sql server 企业管理器中,如何写insert语句并传入null值?

【问题讨论】:

【参考方案1】:
INSERT INTO atable (x,y,z) VALUES ( NULL,NULL,NULL)

【讨论】:

【参考方案2】:

如果您使用 SSMS(或老式企业管理器)直接编辑表格,请按 CTRL+0 添加空值。

【讨论】:

太棒了——我总是忘记这个!

以上是关于sql如何空值替换成null?的主要内容,如果未能解决你的问题,请参考以下文章

SQL问题求助,查询结果如何清除NULL的空值

SQL触发器用INSERT上的当前日期替换表中的空值?

在 spark sql 中用无值替换 Null 值

informix 在选择中用 0 替换空值

我如何创建一个实用函数来检查来自 CSV 的空值并替换为打印 NULL

运行sql时出现多个空值,如何去除