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

求一复杂又简单的Sql文, 请大家多指教,该如何处理

2012-02-12 
求一复杂又简单的Sql文, 请大家多指教有一表IdName1cj11cj1cj22gp3zs我要查询所以的记录,但是如果记录中Id

求一复杂又简单的Sql文, 请大家多指教
有一表   Id   Name  
              1     cj1  
              1     cj  
              1     cj2  
              2     gp
              3     zs  

我要查询所以的记录,但是如果记录中Id字段的值相等,则取Id字段值相等的第一条记录。(注意:Id不是主键,如果Id值相同,取第一条记录)  

比如   想获得的查询结果为  
          Id   Name
          1     cj1  
          2     gp
          3     zs  

我有一个Sql文   select   Id,Min(Name)   from   table1   group   by   Id   ,它能获得不同Id的记录值。但不能保证,如果Id字段值相等,取相等的第一条记录。  

请大家多指教!

[解决办法]
create table t(Id int,Name varchar(10))
insert t select 1, 'cj1 '
union all select 1, 'cj '
union all select 1, 'cj2 '
union all select 2, 'gp '
union all select 3, 'zs '

select Id,Name from t a
where Name = ( select top 1 Name from t b where b.Id = a.Id)

drop table t

Id Name
----------- ----------
1 cj1
2 gp
3 zs

热点排行