首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

反复值和空值的处理

2012-09-27 
重复值和空值的处理在一些情况下,如要查询数据中的几个字段,此时就有可能产生重复记录,而重复的记录是不符

重复值和空值的处理

在一些情况下,如要查询数据中的几个字段,此时就有可能产生重复记录,而重复的记录是不符合规范的,数据表是现实世

 

界的客观反映,因此,空值的产生是不可避免. 

 

 

1.查询时不显示重复记录

在实现查询操作时,如果查询的选择列表中包含一个表的主键,那么每个查询结果中的记录将是唯一的,如果主键不包含

 

在查询结果中,就可能出现重复记录.使用Distinct关键字可以消除重复记录.

 

Distinct关键字可从SQL 语句结果中除去重复的行,如果没有指定DISTINCT关键字,那么将返回所有行,包括重复的行.

 

在使用DISTINCT关键字去除重复记录时,需将DISTINCT关键字放在第一个字段名之前.

 

DISTINCT的语法:Select [disinct|all]select_list

注意:

(1)在select列表中只能使用一次distinct关键字,不要在其后添加逗号,

 

(2)如果省略了distinct关键字,查询结果中不会消除重复的记录,也可以指定all关键字来明确保留重复记录,此项为默认的

 

行为

 

(3)distinct关键字并不是指某一行,而是指不重复select输出的所有列

 

(4)distinct是sum,avg和count函数的可选关键字,如果使用distinct关键字,那么在计算总和,平均值或计数之前,先消除重

 

复的值.

 

例如:显示不重复的内容

 

select distinct 书号,书名,作者,出版社 from tb_BookSell  order by 书号

反复值和空值的处理

2.列出数据中的重复记录和记录条数

 

通过HAVING子句为组指定条件.通过作为一个整体的组指定条件,可限定查询中出现的组.在对数据进行分组和聚集后,

 

将用到having 子句中的条件,中有符号条件的组才会出现在查询中

 

 

例如:查询重复的书籍

select 书名,书号,作者,COUNT (书名) as 重复数量from tb_BookSell  group by 书名,书号,作者having count(书名)>=2

 反复值和空值的处理

 

 

3..取记录中指定字段的空值

 

NULL 代表的是一个未知的值,在查询数据时,想要找出字段值是NULL 的记录时,可以用is NULL 来判断NULL 值.

 

例如:查找出NULL 值

 

select 学生姓名,所在学院,备注信息 from tb_stuInfo where 备注信息 is null

 反复值和空值的处理

 

 

4.除去记录中指定字段的空值

 

在3的时候说过如何查找数据中的空值,那么我们如何能把这些空值去掉呢?

 

想要去掉空值,先要了解一下列中空值形成的原因:

 

1).其值未知

 

2).其值不存在

 

3)列对表行不可用

 

例如:查询没有NULL值的数据

 

select 学生姓名,所在学院,备注信息 from tb_stuInfo where 备注信息 is not null

反复值和空值的处理

 

 

5.在程序的显示中判断是否为空值

 

在使用 MSHFlexGrid1控件显示查询的结果,如果在数据库表中是空值的话,就会显示"无用null值",那我们如何判读是否

 

为null值呢 ,这就需要一个函数____ISNULL 函数.

 

我们就以一个例子来看看:

 

在没有今天没有结账的情况下,查询今天的结账情况:

select sum(Presentaddcash) as Presentaddcash,sum(Presentconsume) as Presentconsume, _

sum(Presentreturncash) as Presentreturncash,sum(Presentbalance)as Presentbalance, _

sum(Prioraddcash) as Prioraddcash  from  dayaccout_Info where  couutdate between'2012/9/17' and '2012/9/17'

反复值和空值的处理

那么就用isnull函数来判断是否为NULL显示出来:

 '填写上期余额        If Not IsNull(mrc.Fields("Prioraddcash").Value) Then            TxtRemaincash.Text = mrc.Fields("Prioraddcash").Value        Else            TxtRemaincash.Text = 0        End If

 

如果不是NULL 值的话,就显示当前的信息,如果是NUll值的话,就显示为0.

 

如果对于空值和重复数据的处理,你 有更好地方法,我们一起交流!

 

 

1楼lfmilaoshi4小时前
多遇到问题,解决了,就是提高n米老师

热点排行