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

本回答被提问者和网友采纳
参考技术B 你的数据类型是数值型,替换后将会将空字符值隐式转换为0
无论什么值,用isnull函数转换后都要根据原有值类型匹配

如何从代码中提取出SQL用于调试?

这个SQL稍微有点复杂,未截图部分大概还有200多行,之前的同事没有写在一行,想要直接贴在SQL编译器里直接运行有点困难。

1,’将包含代码的SQL复制到文本记事本里。

2,将SQL括号左边的内容替换成空的。

3,将SQL右边的括号替换成空的

 

4,将SQL复制到https://tool.lu/sql/    进行SQL美化

5,将所有的参数进行设置,同样在记事本中替换成可以测试的参数。

 

之后就可以复制到编译器里执行和分析了。

 

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

SQL语句条件为空值

SQL 语句 把一个值为0的字段改为空('null')

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

如何写sql语句去掉oracle返回结果中的空值(NULL)

SQL中空值查询''与null 的区别

java 中怎么把接收到的sql语句中的相指定字符串替换