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权限的话,还是改了比较好,毕竟两个值都有处理起来还是不叫麻烦的。
语法:update 表名 set 字段名=null where 字段名=''
注意:
null是个关键字,不要加任何符号
''代表空值
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?的主要内容,如果未能解决你的问题,请参考以下文章