Table Person Id Name Age High Weight
1 张三 15 163 50kg
2 李四 18 170 60kg
3 王五 19 165 55kg
4 张三 20 169 50kg使用sql语句查询,如何得到如下的结果:
1 张三 15 163 50kg
2 李四 18 170 60kg
3 王五 19 165 55kg
或者这样的结果:
2 李四 18 170 60kg
3 王五 19 165 55kg
4 张三 20 169 50kg
也就是说相同名字的人只显示1条记录,是哪条没关系.
用存储过程实现也可以.
Id Name Age High Weight 每个字段都是必须要的.还请大哥大姐们帮帮小弟,非常感谢.
1 张三 15 163 50kg
2 李四 18 170 60kg
3 王五 19 165 55kg
4 张三 20 169 50kg使用sql语句查询,如何得到如下的结果:
1 张三 15 163 50kg
2 李四 18 170 60kg
3 王五 19 165 55kg
或者这样的结果:
2 李四 18 170 60kg
3 王五 19 165 55kg
4 张三 20 169 50kg
也就是说相同名字的人只显示1条记录,是哪条没关系.
用存储过程实现也可以.
Id Name Age High Weight 每个字段都是必须要的.还请大哥大姐们帮帮小弟,非常感谢.
select distinct id,name,age,high,weight from student
select * from Person where Id in (select min(Id) from Person group by Name)
我只想说楼主的查询毫无意义。你查询的是什么?虽然人名是重复的,可他们有不同的ID,实际上并不是同一个人,不是同一条记录,你希望过滤重名,那么只能针对姓名来查询, 如select distinct name from student你还希望加上其他所有字段,不重名,那是不可能的,因为其他的字段的值并不重复。 看你数据库里的两个张三,你希望列出他们的
属性,还不能重名,那么数据库怎么知道你要的是第一个张三还是最后一个张三?他们其他的属性并不重复。这么说你明白了么?
create table person
(
Id varchar(30),
name varchar(30),
Age varchar(30),
High varchar(30),
Weight varchar(30),
)
go
insert into person
select '1','zhang san','15','163','50kg'
union
select '2','li si','18','170','60kg'
union
select'3','wang wu','19','165','55kg'
union
select '4','zhang san','20','169','50kg'
union
select '5','li si','22','179','70kg'
go
select A.* from person A
where A.id in(select top 1 ID from person where person.name=A.name )drop table person
select * from Person where Id in (select min(Id) from Person group by Name)
上边只是举个例子来实现这样的功能,其实我这是这样的,上边的name相当与文件的名称,文件有多个版本,界面上有两个显示的地方,一个显示文件的列表(相同的文件名显示1个,哪个是无所谓的),然后还有个界面,在点击某个文件名的时候显示它的版本列表.不是一点意义也没有.
上边也提到了,只要name有重复的显示哪个是无所谓的.