SQL的查询问题!(20分)

  • 主题发起人 主题发起人 pcw
  • 开始时间 开始时间
P

pcw

Unregistered / Unconfirmed
GUEST, unregistred user!
有一表(table)记录如下:
id name jih bn ...
1 张三 ... ...
2 张三 ... ...
3 李四 ... ...
4 老二 ... ..
5 老二 ... ..
6 老五 .. ...
如何用SQL语句查询出(不出现重复记录)如下记录:
id name jih bn ...
1 张三 ... ...
2 李四 ... ...
3 老二 ... ...
4 老五 ... ...
用select * from table group by name不行,请指教!

 
SELECT id,DISTINCT name,jih,bn FROM tablename
 
如果改为select name from table group by name运行后是可以只显示一个名字的结果
因为其他字段中包含了不相同的信息所以直接运行select * from table group by name
是会报错。正确的方法我正在测试,等会告诉你
 
前面都有很多类似的文章了,记住关键字DISTINCT
 
select * from table AS a
where (select count(*) from table where name=a.name)=1

这就可以查出不重复的记录

select * from table AS a
where (select count(*) from table where name=a.name)>1

这就可以查出重复的记录



 
由于字段太多,如果保持select * from.....中的'*'?
 
关键字DISTINCT也不行,只select name时可以,select多个字段的时候是不行的,刚刚我
测试过了,用简单的SQL语句达不到PCW老兄的要求,楼上的你别干说不练,写一句自己试
试先。要不不就成了骗分了。
 
to pcw:
无所谓了,
我这里只是这样说明,
你想写几个安段都行如

select id name jih bn from table AS a
where (select count(name) from table where name=a.name)=1


 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部