分页显示问题
发布网友
发布时间:2022-09-22 23:14
我来回答
共3个回答
热心网友
时间:2024-11-24 03:18
lz,这个问题其实和普通的分页问题是一样的,只是规则不同而已,普通的分页是以每页条数来分的,比如每页20条,正排前20条,倒排前20条,这样两页的数据就出来了,这样通过拼接sql可以完成,这种分页函数方法,网上多了去了。你这个问题呢只是变了角度,其实本质是一样的,你这里是以分类数来决定分页。我写个简单的sql给你看一下
create table 1121(id char(1));insert into 1121select 'A' UNION ALLSELECT 'A'UNION ALLSELECT 'B'UNION ALLSELECT 'B'UNION ALLSELECT 'C'UNION ALLSELECT 'D'UNION ALLSELECT 'D'UNION ALLSELECT 'E'UNION ALLSELECT 'E'UNION ALLSELECT 'E'UNION ALLSELECT 'F'UNION ALLSELECT 'G';SELECT T1.id,T2.RN FROM 1121 T1,(SELECT T.ID,ROW_NUMBER()OVER(ORDER BY ID)RN FROM(SELECT DISTINCT ID FROM 1121)T)T2 WHERE T1.ID=T2.id;--结果A1A1B2B2C3D4D4E5E5E5F6G7或者还可以这样SELECT T1.id,T2.RN%3+1 FROM 1121 T1,(SELECT T.ID,ROW_NUMBER()OVER(ORDER BY ID)RN FROM(SELECT DISTINCT ID FROM 1121)T)T2 WHERE T1.ID=T2.id;--结果A2A2B3B3C1D2D2E3E3E3F1G2这样写希望对你理解有帮助,有问题再追问吧,望采纳。
希望能解决您的问题。
热心网友
时间:2024-11-24 03:18
lz,这个问题其实和普通的分页问题是一样的,只是规则不同而已,普通的分页是以每页条数来分的,比如每页20条,正排前20条,倒排前20条,这样两页的数据就出来了,这样通过拼接sql可以完成,这种分页函数方法,网上多了去了。你这个问题呢只是变了角度,其实本质是一样的,你这里是以分类数来决定分页。我写个简单的sql给你看一下
create table 1121(id char(1));insert into 1121select 'A' UNION ALLSELECT 'A'UNION ALLSELECT 'B'UNION ALLSELECT 'B'UNION ALLSELECT 'C'UNION ALLSELECT 'D'UNION ALLSELECT 'D'UNION ALLSELECT 'E'UNION ALLSELECT 'E'UNION ALLSELECT 'E'UNION ALLSELECT 'F'UNION ALLSELECT 'G';SELECT T1.id,T2.RN FROM 1121 T1,(SELECT T.ID,ROW_NUMBER()OVER(ORDER BY ID)RN FROM(SELECT DISTINCT ID FROM 1121)T)T2 WHERE T1.ID=T2.id;--结果A1A1B2B2C3D4D4E5E5E5F6G7或者还可以这样SELECT T1.id,T2.RN%3+1 FROM 1121 T1,(SELECT T.ID,ROW_NUMBER()OVER(ORDER BY ID)RN FROM(SELECT DISTINCT ID FROM 1121)T)T2 WHERE T1.ID=T2.id;--结果A2A2B3B3C1D2D2E3E3E3F1G2这样写希望对你理解有帮助,有问题再追问吧,望采纳。
以上回答你满意么?
热心网友
时间:2024-11-24 03:18
lz,这个问题其实和普通的分页问题是一样的,只是规则不同而已,普通的分页是以每页条数来分的,比如每页20条,正排前20条,倒排前20条,这样两页的数据就出来了,这样通过拼接sql可以完成,这种分页函数方法,网上多了去了。你这个问题呢只是变了角度,其实本质是一样的,你这里是以分类数来决定分页。我写个简单的sql给你看一下
create table 1121(id char(1));insert into 1121select 'A' UNION ALLSELECT 'A'UNION ALLSELECT 'B'UNION ALLSELECT 'B'UNION ALLSELECT 'C'UNION ALLSELECT 'D'UNION ALLSELECT 'D'UNION ALLSELECT 'E'UNION ALLSELECT 'E'UNION ALLSELECT 'E'UNION ALLSELECT 'F'UNION ALLSELECT 'G';SELECT T1.id,T2.RN FROM 1121 T1,(SELECT T.ID,ROW_NUMBER()OVER(ORDER BY ID)RN FROM(SELECT DISTINCT ID FROM 1121)T)T2 WHERE T1.ID=T2.id;--结果A1A1B2B2C3D4D4E5E5E5F6G7或者还可以这样SELECT T1.id,T2.RN%3+1 FROM 1121 T1,(SELECT T.ID,ROW_NUMBER()OVER(ORDER BY ID)RN FROM(SELECT DISTINCT ID FROM 1121)T)T2 WHERE T1.ID=T2.id;--结果A2A2B3B3C1D2D2E3E3E3F1G2这样写希望对你理解有帮助,有问题再追问吧,望采纳。