sql如何把查询到的NULL替换成空值''
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql如何把查询到的NULL替换成空值''相关的知识,希望对你有一定的参考价值。
SQL Server中,用isnull(expression,'')时,如果存在NULL,则会替换成0,请问如何把NULL替换成空值呢,就是什么也没有
1、这要看你如何保存你查询的结果。只能是你把你查询的结果保存为0,查询不会改变原本存在的值。表名test,字段a=.null.(int型),字段b=1,字段c=2 :select * from test into tabel test1
update set a=0 where a=.null。
2、用 IsNull(字段名, '') 可以将NULL的字段转换为空值,这在多个字段连接时很有用,因为NULL值+任何字段都是NULL。
3、将NULL替换为空create procedure fill_null@tablename varchar(100) --表名asdeclare @colname varchar(100)declare col_cur cursor for select c.name from syscolumns c,sysobjects o where c.id=o.id and o.name=@tablename open col_curfetch next from col_cur into @colnamewhile @@fetch_status!=-1beginexec ('update '+@tablename+' set '+@colname+'='''' where '+@colname+' is null' )fetch next from col_cur into @colnam endclose col_curdeallocate col_cur
参考技术A isnull(expression,'') 就是将null换成 0长度字符啊isnull(expression,0) 才是将null换成 0 呢
select isnull(expression,'') from tab;追问
是的啊,但是我今天做了个语句替换的都是0,是不是经过聚合函数之后就行了?
追答没有明白你说的是什么?
你的 expression 是字符,还是数字啊?
做什么聚合函数?
我明白了,我这里的expression是int型的,是不能替换成字符形式的,这样就有点麻烦了
追答那你用这段代码试试看:
select
case when expression is null then '' else cast (expression as varchar(200)) end
from tabxxx
无论什么值,用isnull函数转换后都要根据原有值类型匹配
如何从代码中提取出SQL用于调试?
这个SQL稍微有点复杂,未截图部分大概还有200多行,之前的同事没有写在一行,想要直接贴在SQL编译器里直接运行有点困难。
1,’将包含代码的SQL复制到文本记事本里。
2,将SQL括号左边的内容替换成空的。
3,将SQL右边的括号替换成空的
4,将SQL复制到https://tool.lu/sql/ 进行SQL美化
5,将所有的参数进行设置,同样在记事本中替换成可以测试的参数。
之后就可以复制到编译器里执行和分析了。
以上是关于sql如何把查询到的NULL替换成空值''的主要内容,如果未能解决你的问题,请参考以下文章