请教一个数据筛选问题

Leo2048 2012-05-20 02:58:47
有一个表,字段为Category,Name,Value,Number。除了Value是int类型外,其它都是varchar(50)。
可能数据为:


/*
Category Name Value Number
分类1 A 1 A-001
分类1 A 2 A-002
分类1 A 3 A-102
分类1 B 1 A-082
分类1 A 2 A-003
分类1 A 3 A-002
分类1 A 1 A-002
*/


现在我需要这样的数据

/*
Category Name Value Number
分类1 A 1 A-001
分类1 A 1 A-002
分类1 A 2 A-003
分类1 B 1 A-082
分类1 A 3 A-102
*/

即Number有相同的编号时,只取Value为最小值的那条数据,并为Number列升序排列。

请问如何用SQL语句实现?最好给出可运行语句,谢谢!
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leo2048 2012-05-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

SQL code

--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
go
create table [test](
[Category] varchar(5),
[Name] varchar(1),
[Value] int,
[Number] varcha……
[/Quote]

嗯 ,谢谢~
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

SQL code

--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
go
create table [test](
[Category] varchar(5),
[Name] varchar(1),
[Value] int,
[Number] varchar(5)
)
go
insert [test]
……
[/Quote]

--2005以上版本使用row_number函数效率一般比相关子查询高,建议实际运用时使用这个函数
  • 打赏
  • 举报
回复

--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
go
create table [test](
[Category] varchar(5),
[Name] varchar(1),
[Value] int,
[Number] varchar(5)
)
go
insert [test]
select '分类1','A',1,'A-001' union all
select '分类1','A',2,'A-002' union all
select '分类1','A',3,'A-102' union all
select '分类1','B',1,'A-082' union all
select '分类1','A',2,'A-003' union all
select '分类1','A',3,'A-002' union all
select '分类1','A',1,'A-002'
go

select
[Category],
[Name],
[Value],
[Number]
from
(
select
px=ROW_NUMBER()over(partition by [Number],[Name],[Category] order by [Value]),*
from
test
)t
where
px=1

/*
Category Name Value Number
分类1 A 1 A-001
分类1 A 1 A-002
分类1 A 2 A-003
分类1 B 1 A-082
分类1 A 3 A-102
*/

人生无悔 2012-05-20
  • 打赏
  • 举报
回复

select Category,[Name],[Value],Number from t
where t.[Value]=(select min([Value]) from t t1
where t.Category=t1.Category and t.[Name]=t1.[Name] and t.[Number]=t1.[Number])
order by t.Number
--t为你的表

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧