怎样把一条SQL语句查询出的结果集中的空值替换成0

关键是我不知道是哪个为空,而且有很多字段,怎么办?

在Sql2000中
假设有这么一张表
create table test
(
id int,
name varchar(32),
sex char
)
那么查询可以用
select * from test where id is null or name is null or sex is null
有些东西是不能为空的,所以LZ有很多字段的话可以挑选出那些可能为空的,其余在建立表时就应当设置为非空拉

如果在Oracle中有个 nvl(exp1,exp2)函数,
可以用来判断是否为空,如果exp1为空的话,则显示exp2中的字符
select nvl(id,'空'),nvl(name,'空'),nvl(sex,'空') from name

望能看到更好的办法.
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-09-27
如果你是SQL 数据库:
有一表Table,字段:ID,name(字符型),如果字段name为空NULL或为空字符‘’的替换为‘0’,用以下语句:
select (CASE when (name IS NULL or name='') then '0' else name end) as name from table
如果name为数据型的,则:
select (CASE when (name IS NULL or name='') then 0 else name end) as name from table
你试试看,我已试过的。
第2个回答  2007-09-27
如果是Oracle的话可以用nvl()
比如, 你原本是要SELECT A, B, C FROM.....
就可以写成 SELECT NVL(A, 0), NVL(B, 0), NVL(C, 0) FROM...

当然A,B,C必须都是Number型的
第3个回答  2007-09-27
可以用Decode函数,
如:
表名为:test
字段名为:D1
SQL语句如下:
select decode(D1,null,'0',D1) from test;
实现的目的:当D1为null时返回0,else 返回D1本身的值。
关于Decode的用法,到baidu上一搜就有。
第4个回答  2007-09-27
ISNULL(字段,0)本回答被提问者采纳

怎样把一条SQL语句查询出的结果集中的空值替换成0
那么查询可以用 select * from test where id is null or name is null or sex is null 有些东西是不能为空的,所以LZ有很多字段的话可以挑选出那些可能为空的,其余在建立表时就应当设置为非空拉 如果在Oracle中有个 nvl(exp1,exp2)函数,可以用来判断是否为空,如果exp1为空的话,则显示exp2...

求一条SQL语句,怎么样把从数据库中查出来为空的值赋为“0”,是所有为...
1、select case C_NUMBER when NULL then '0' else C_NUMBER end from T_SCORE如果这条语句执行不对,那么说明你的C_NUMBER字段的NULL不是真正的NULL,而是字符串“NULL”,所以需要这样的SQL:select case C_NUMBER when 'NULL' then '0' when 'null' then '0' else C_NUMBER end from T...

sql查询总和为空的时候怎么给他赋值为零?
你原来的SQL中已经使用了一次isNULL(),其实,再使用一次就是了,只是要搞清楚括号就好了。select isNULL(SUM(isNULL(score,0)),0) from ZWY_Subject where Users =11

sql 查询时有空值返回0怎么写
方法一:select isnull(字段名,0) from 表名;字符型:select isnull(mycol,'0') as newid from mytable整型:select isnull(mycol,0) as newid from mytable 方法二:case ??endcase when columnName is null then 0 else columnName end mysql 将空值返回0用如下语句:select ifnull(字段名,0)...

SQL空值替换成0的问题
ncye是年初余额,你这个是财务软件呀 原则上不要擅自改动数据库,因为程序会有相应处理 不过你可以把允许空值去掉,然后给默认初始值 另外批量处理null需要写sql语句,语法是update 表名 set j1 = 0 where j1 is NULL 反正要一列一列的改,条件一点点的换,不然一个不小心,数据就没了 ...

求助:如何把ACCESS表里面的空值替换为0
用SQL语句 创建--->查询设计--->关闭“显示表”对话框--->单击“SQL视图”,输入如下语句:UPDATE 表名 SET 字段名称 = 0 WHERE 字段名称 Is Null 即把字段值为空的更新为0

sql查询字段是空的语句并且空值用0代替怎么写?
--列是字符类型的select isnull(列名,'0') as 列名 from 表名--列是数字类型的select isnull(列名,0) as 列名 from 表名

SQL语句里怎么将SUM里的空值赋值为0
通过isnull(字段 ,新值)函数实现,如果字段为空,那么给其赋值为“新值”。sql :select isnull( sum(isnull(age ,0)), 0 ) from tablename;解释:上面sql实际上做了两次判断,第一次,判断age是否为空,为空的话,就赋值为0;第二次,判断查询中的age数据都为空或者就没有记录,那么...

请问oracle的把全部空值的字段修改为0的sql语句怎么写
1、遍历user_tables里面所有的表 2、遍历每一个表的所有列 3、update操作 这个要循环嵌套一个循环才能完成。存储过程代码如下(未测试):CREATE OR REPLACE PROCEDURE UpdateTableSetNull ISDECLARE CURSOR C_JOB IS SELECT TABLE_NAME FROM USER_TABLES; C_ROW C_JOB%ROWTYPE; VAR_TAB...

sql server 如何改变计算结果的值 如null改变为0
写几个isnull就行,如果不认,那么就做成视图,然后查询视图的时候再isnull一下,这个应该可以吧。(2)还有一个办法就是弄一张写有所有行转列列名的表,然后让所有的“客服”和这张表cross join,然后再进行计算,不过这样的话,总感觉有些小题大做,为了个0,搞这么多东西,似乎有些不值。

相似回答