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

重复项过滤 + 排序解决办法

2012-02-12 
重复项过滤 + 排序现在有一个表:nameid第一1第一2第一3第二4第三5现在想得到:name第一第二第三要升序排列

重复项过滤 + 排序
现在有一个表:
name           id
第一           1
第一           2
第一           3
第二           4
第三           5
  现在想得到:
name
第一
第二
第三

要升序排列的,该怎么办啊~

直接用select   DISTINCT   name   from   table   order   by   name   asc出现:

name
第二
第三
第一

[解决办法]
select name from table group by name order by id desc
[解决办法]
create table T(name varchar(10), id int)
insert T select '第一 ', 1
union all select '第一 ', 2
union all select '第一 ', 3
union all select '第二 ', 4
union all select '第三 ', 5

select name
from T
group by name
order by min(id)

--result
name
----------
第一
第二
第三

(3 row(s) affected)
[解决办法]
2楼牛哈,呵呵
[解决办法]

向 marco08(天道酬勤) 學習

[解决办法]
建表:
IF EXISTS(SELECT *FROM SYSOBJECTS WHERE NAME= 'temptab 'AND XTYPE= 'U ')
DROP TABLE temptab
create table temptab
(
pname varchar(20),
pid int
)

插入数据:
insert into temptab values( '第一 ',1)
insert into temptab values( '第一 ',2)
insert into temptab values( '第一 ',3)
insert into temptab values( '第三 ',4)
insert into temptab values( '第二 ',5)

要求的查询
select pname from
(select pname,
case pname
when '第一 ' then 1
when '第二 ' then 2
when '第三 ' then 3
end Porder
from temptab group by pname)tt
order by Porder

该方法使用CASE语句,针对你要求的排序方式自己定义顺序,按定义的排序字段(Porder)来排序。

热点排行