1、oracle数据库的row_number() over (partition by col1 order by col2) 
函数作用为:根据col1分组,在分组内部根据 col2排序
而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的)
表内容如下:
name | seqno | description
A | 1 | test
B | 2 | test 
C | 3 | test  
A | 4 | test
B | 1 | test
A | 2 | test
B | 3 | test
C | 4 | test
C | 1 | test
C | 2 | test
A | 3 | test
B | 4 | test语句select name, seqno, description, row_number() over(partition by name order by seqno) id from table_1的执行结果为:
name | seqno | description | id
A | 1 | test | 1
A | 2 | test | 2
A | 3 | test | 3
A | 4 | test | 4
B | 1 | test | 1
B | 2 | test | 2
B | 3 | test | 3
B | 4 | test | 4
C | 1 | test | 1
C | 2 | test | 2
C | 3 | test | 3
C | 4 | test | 4请书写一个sql语句(要求包含row_number()函数,并且每一个select关键字后的查询内容中都要包含name,seqno,description三个字段,如:select name,seqno*seqno, name||description from dual),执行结果为:
A | 1 | 2 | te
B | 2 | 1 | et
C | 0 | 0 | se
create table a_yangmm_1128
(Sname varchar2(10),
 Snumber number,
 Stxt  varchar2(10)
)insert into a_yangmm_1128 values('A',1,'test');
insert into a_yangmm_1128 values('B',2,'test');
insert into a_yangmm_1128 values('C',3,'test');
insert into a_yangmm_1128 values('A',4,'test');
insert into a_yangmm_1128 values('B',1,'test');
insert into a_yangmm_1128 values('A',2,'test');
insert into a_yangmm_1128 values('B',3,'test');
insert into a_yangmm_1128 values('C',4,'test');
insert into a_yangmm_1128 values('C',1,'test');
insert into a_yangmm_1128 values('C',2,'test');
insert into a_yangmm_1128 values('A',3,'test');
insert into a_yangmm_1128 values('B',4,'test');学习了一阵子SQL感觉到了它的博大精深啊...
但是这个语句让我写还真困难啊.
两点疑问..
一点它的ID怎们取到的0 还有后面的字符串截取的优点怪异.....
小弟洗耳恭听大侠们的指教..