表字段值
ID int
SN nvarchar(50)
Gtemp nvarchar(50)
Indate nvarchar(50)
Gstemp nvarchar(50)
SunStren nvarchar(50)
gel nvarchar(50)数据值
ID Sn Getmp indate Gstemp Sunstren gel
1 111 aaa 2010-01-01 aaa 30 30
2 222 bbb 2010-01-01 bbb 30 30
3 333 ccc 2010-01-01 ccc 30 30
4 111 ddd 2010-01-01 ddd 30 30
我想选取 sn 不重复包含重复一列的所有数据 sql语句该怎样写呢??
ID int
SN nvarchar(50)
Gtemp nvarchar(50)
Indate nvarchar(50)
Gstemp nvarchar(50)
SunStren nvarchar(50)
gel nvarchar(50)数据值
ID Sn Getmp indate Gstemp Sunstren gel
1 111 aaa 2010-01-01 aaa 30 30
2 222 bbb 2010-01-01 bbb 30 30
3 333 ccc 2010-01-01 ccc 30 30
4 111 ddd 2010-01-01 ddd 30 30
我想选取 sn 不重复包含重复一列的所有数据 sql语句该怎样写呢??
这样写怎么不对呢?
你这样写会把所有的数据都查出来的,select distinct sn from Data会查出所有的sn(111,222,333)
你再想想select * from Data where SN in ( ‘111’,‘222’,‘333’)
是不是就会查出所有数据3楼的是正解,按sn分组,查出每组最大的一个id,这样sn有几组就有几个id
distinct 有区别的 独特的
where A.id = (select max(id) from data as B where B.sn = A.sn)
select distinct sn from 表名
或者
select a.* from TableName as a inner join(select ID=min(ID) from TableName group by Sn) as b on a.ID =b.ID 都可以