DB2分类取前N个记录的SQL语句

数据库
SQL语句可以实现DB2数据库中的许多功能,分类取前N个记录就是其中之一。下文对该方法的实现过程作了详细的介绍,供您参考。

下面为您介绍的SQL语句用于实现DB2分类取前N个记录,如果您遇到过DB2分类取前N个记录的问题,不妨一看。

有一个表t1,结构如下:
类别编号 说明 排序
a aa       1
a aa2      4
a aa3      6
b bb       1
b bb2      3
b bb3      5
c cc       1
c cc2       5
c cc3       7
需要查询出来的结果是每个类别的头2条记录,按排序进行排序,结果如下:
类别编号 说明 排序
a aa        1
a aa2      4
b bb        1
b bb2      3
c cc         1
c cc2       5

create   table   t1(
yTypeCode   varchar(10),
yMemo varchar(10),
yOrder   int
)

insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'a ', 'aa ',1);
insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'a ', 'aa2 ',4);
insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'a ', 'aa3 ',6);
insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'b ', 'bb ',1);
insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'b ', 'bb2 ',2);
insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'b ', 'bb3 ',3);
insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'c ', 'cc ',1);
insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'c ', 'cc2 ',5);
insert   into   t1(yTypeCode,yMemo,yOrder)   values( 'c ', 'cc3 ',8)

实现;

SELECT * FROM t1 t
WHERE (SELECT count(*) FROM t1 WHERE yTypeCode=t.yTypeCode AND yOrder<t.yOrder)<2
 

 

 

【编辑推荐】

DB2 Merge语句的用法

DB2流程控制子句一览

DB2游标原理介绍

db2日志保存的两种方式

几种常用的DB2循环用法

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-06 15:13:05

DB2

2010-11-04 15:39:40

DB2 SQL语句

2010-11-04 13:14:16

DB2执行SQL语句

2022-09-09 08:32:14

SQLMySQL数据库

2010-04-20 14:50:04

Oracle数据库

2023-11-07 08:38:08

SQLOracleMySQL

2010-11-01 16:07:22

DB2表空间

2021-03-24 15:06:55

SQL数据库MySQL

2010-11-01 11:13:57

DB2表管理

2010-11-04 11:17:42

DB2 Merge语句

2010-11-01 14:46:41

DB2更新语句

2011-08-17 20:48:25

索引建立语句非聚集索引唯一索引

2010-11-11 11:25:45

SQL UPDATE语

2010-09-26 15:15:11

SQL语句

2010-09-30 16:46:11

DB2操作语句

2010-11-04 11:39:47

2010-09-30 16:00:40

DB2动态SQL

2011-08-17 21:23:41

约束NOT NULLUNIQUE

2011-08-17 21:49:55

建立视图SQL ServerOracle

2010-09-01 11:46:01

DB2临时表SQL
点赞
收藏

51CTO技术栈公众号