帮忙看看,这样的结果集能不能用一个SQL语名实现.

CommerceServer 2005-12-16 11:49:26
DB里存在这样的记录
NO COL1 COL2 COL3
1 A A A
1 B B B
1 C C C
2 D D D
2 E E E
3 F F F
3 G G G

检索出来的结果集要求是

NO COL1 COL2 COL3
1 A A A
2 D D D
3 F F F

也就是说以NO分组,只要每个NO号的第一条数据.

请问一个SQL语句能完成吗???

...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzou 2005-12-22
  • 打赏
  • 举报
回复
fvb17321写的是对的
只需要加一个表别名就行了
SELECT NO,COL1,COL2,COL3 FROM (
SELECT NO,COL1,COL2,COL3,
ROW_NUMBER() OVER (ORDER BY NO ASC) AS ROW,
RANK() OVER (ORDER BY NO ASC) AS RANK
FROM TABLE
) a WHERE ROW=RANK
lablas 2005-12-20
  • 打赏
  • 举报
回复
NO COL1 COL2 COL3
1 A A A
1 B B B
1 C C C
2 D D D
2 E E E
3 F F F
3 G G G

用db2排序函数可以这样:
SELECT NO,COL1,COL2,COL3 FROM (
SELECT NO,COL1,COL2,COL3,
ROW_NUMBER() OVER (ORDER BY NO ASC) AS ROW,
RANK() OVER (ORDER BY NO ASC) AS RANK
FROM TABLE
) WHERE ROW=RANK WITH UR

ROW_NUMBER() :将每天记录排序,每条记录一个序号;
RANK() :也是排序,不过相同记录一个序号。
还可以具体取某一个col的大小顺序
子陌红尘 2005-12-20
  • 打赏
  • 举报
回复
select a.* from DB a where not exists(select * from DB where NO=a.NO and COL1<a.COL1)
CommerceServer 2005-12-19
  • 打赏
  • 举报
回复
TO 楼上的,有这么一个问题.col1,col2,col3不是主键,或NO,col1,col2同时都为主键,就会有重复的情况出现.

NO COL1 COL2 COL3
1 A A A
1 A B B
1 C C C
2 D D D
2 E E E
3 F F F
3 G G G

这样关联好象也不行吧.
ibanez550 2005-12-17
  • 打赏
  • 举报
回复
select a.no,a.col1,a.col2,a.col3
from table as a ,
(select no,min(col1) as col1
from table
group by no) as b
where a.no=b.no and a.col1=b.col1
col1是你的要取得的纪录关键字,如果有两列col1,col2就先取出两列再关联。

Mr_Bean 2005-12-16
  • 打赏
  • 举报
回复
distinct NO
出来是什么结果?
Firec 2005-12-16
  • 打赏
  • 举报
回复
帮顶,我也想问这个问题

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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