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

关键是我不知道是哪个为空,而且有很多字段,怎么办?... 关键是我不知道是哪个为空,而且有很多字段,怎么办? 展开
 我来答
polar706
2007-10-03
知道答主
回答量:14
采纳率:0%
帮助的人: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

望能看到更好的办法颤余.
zhanghua318819
2007-09-27 · 超过14用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:0
展开全部
如果你是卖好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
你试试看,我已试过的。枝纯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DreamXWay
2007-09-27 · 超过20用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:52.8万
展开全部
如指蔽悄果是Oracle的话可以用并盯nvl()
比如, 你原本是要SELECT A, B, C FROM.....
就可唯渣以写成 SELECT NVL(A, 0), NVL(B, 0), NVL(C, 0) FROM...

当然A,B,C必须都是Number型的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingklw32
2007-09-27 · TA获得超过432个赞
知道小有建树答主
回答量:514
采纳率:0%
帮助的人:316万
展开全部
可以用Decode函数,
如:
表名为:test
字慧亏段名为:D1
SQL语句如下:
select decode(D1,null,'0',D1) from test;
实现的目洞让的:当D1为null时返回0,纳碧局else 返回D1本身的值。
关于Decode的用法,到baidu上一搜就有。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友308deb441
2007-09-27 · 超过18用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:0
展开全部
ISNULL(字段,0)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式