社区
MS-SQL Server
帖子详情
用了distinct了,但是还是有重复的记录,怎么回事呢
rbleng
2003-09-04 01:41:19
如题
...全文
978
11
打赏
收藏
用了distinct了,但是还是有重复的记录,怎么回事呢
如题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hillhx
2003-09-04
打赏
举报
回复
你执行以下的例子 就明白了,我加了“回车”脏字符
begin tran
select *
into tbl1
from (
select 'aaa' as a
union all
select 'bbb' as a
union all
select 'ccc' as a
union all
select 'aaa' + CHAR(13) as a
union all
select 'bbb' + char(10) as a ) t1
select * from tbl1
select distinct a from tbl1
select a ,len(a) from tbl1
rollback tran
hillhx
2003-09-04
打赏
举报
回复
可能是你的数据库中有不能显示的字符,你可以用LEN函数看看你所谓相同的两条数据是不是长度真的一样,我感觉可能是搀杂了脏字符比如 回车、TAB等,如果真的用了DISTINCT仍然有相同数据,我感觉只可能是看上去相同,实际两个数据并不相同
Sorder
2003-09-04
打赏
举报
回复
肯定你搞错了
happydreamer
2003-09-04
打赏
举报
回复
create table #t (a int, b int)
insert into #t select 2,2 union all select 2,3 union all select 1,5 union all
select 2,2
select distinct * from #t
a 列会有重复 a,b就不会
eminena
2003-09-04
打赏
举报
回复
distinct 针对其后所有列起作用.
king0401
2003-09-04
打赏
举报
回复
使用 DISTINCT 消除重复项
DISTINCT 关键字可从 SELECT 语句的结果中除去重复的行。如果没有指定 DISTINCT,那么将返回所有行,包括重复的行。例如,如果在 titleauthor 中选择所有作者 ID 时未使用 DISTINCT,那么将会返回下列行(其中包括一些重复的行):
USE pubs
SELECT au_id
FROM titleauthor
下面是结果集:
au_id
-----------
172-32-1176
213-46-8915
213-46-8915
238-95-7766
267-41-2394
267-41-2394
274-80-9391
409-56-7008
427-17-2319
472-27-2349
486-29-1786
486-29-1786
648-92-1872
672-71-3249
712-45-1867
722-51-5454
724-80-9391
724-80-9391
756-30-7391
807-91-6654
846-92-7186
899-46-2035
899-46-2035
998-72-3567
998-72-3567
(25 row(s) affected)
而使用了 DISTINCT 后,就能够除去重复项,而只查看唯一的作者 ID:
USE pubs
SELECT DISTINCT au_id
FROM titleauthor
下面是结果集:
au_id
-----------
172-32-1176
213-46-8915
238-95-7766
267-41-2394
274-80-9391
409-56-7008
427-17-2319
472-27-2349
486-29-1786
648-92-1872
672-71-3249
712-45-1867
722-51-5454
724-80-9391
756-30-7391
807-91-6654
846-92-7186
899-46-2035
998-72-3567
(19 row(s) affected)
hanps
2003-09-04
打赏
举报
回复
用distinct 对在它后面所有的列有作用,你把你的语句和数据放让大家看看
zdleek
2003-09-04
打赏
举报
回复
看看distinct的用法就可以了
愉快的登山者
2003-09-04
打赏
举报
回复
可能是对“重复”理解的不对。
mjhnet
2003-09-04
打赏
举报
回复
请将语句列出来,你写的肯定不对
pengdali
2003-09-04
打赏
举报
回复
不可能
但你要注意:distinct 是对select 后所有的列起作用
数据库管理与应用 5.2.12使用
DISTINCT
关键字过滤
重复
的
记录
.pdf
数据库管理与应用 5.2.12使用
DISTINCT
关键字过滤
重复
的
记录
.pdf 学习资料 复习资料 教学资源
oracle sql 去
重复
记录
不用
distinct
如何实现
用
distinct
关键字只能过滤查询字段中所有
记录
相同的(
记录
集相同),而如果要指定一个字段却没有效果,另外
distinct
关键字会排序,效率很低 。 select
distinct
name from t1 能消除
重复
记录
,但只能取一个字段,现在要同时取id,name这2个字段的值。 select
distinct
id,name from t1 可以取多个字段,但只能消除这2个字段值全部相同的
记录
所以用
distinct
达不到想要的效果,用group by 可以解决这个问题。 例如要显示的字段为A、B、C三个,而A字段的内容不能
重复
可以用下面的语句: select A, min(B),mi
select
distinct
用法
sql中select语句中的
distinct
的用法
使用
distinct
在mysql中查询多条不
重复
记录
值的解决办法
使用
distinct
在mysql中查询多条不
重复
记录
值的解决办法
数据库中
重复
值和空值的处理
在一些情况下,如要查询数据中的几个字段,此时有可能产生
重复
记录
,而
重复
的
记录
是不符合规范的,数据表是现实世界的客观反映,因此,空值的产生是不可避免。 1、查询时不显示
重复
记录
在实现查询操作时,如果查询的选择列表中包含一个表的主键,那么每个查询结果中的
记录
将是的,如果主键不包含在查询结果中,可能出现
重复
记录
.使用
Distinct
关键字可以消除
重复
记录
。
Distinct
关键字可从SQL 语句结果中除去
重复
的行,如果没有指定
DISTINCT
关键字,那么将返回所有行,包括
重复
的行。 在使用
DISTINCT
关键字去除
重复
记录
时,需将
DISTINCT
关键字放在第一个字段
MS-SQL Server
34,870
社区成员
254,637
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章