怎么让图一的查询结果像图二那样按顺序一行只显示10个呢?
是一条sql语句就能搞定,还是得靠后台实现啊,怎么写啊
或者我用后台查出了所有的结果,前台function可以实现一行显示10个嘛,怎么写这个function啊
with t as
(select employee_id,
trunc((row_number() over(order by employee_id) - 1) / 10)+1 g,
mod(row_number() over(order by employee_id) - 1, 10) m
from hr.employees)
select "1", "2", "3", "4", "5", "6", "7", "8", "9", "10","11"
from t
pivot (min(employee_id) for g in(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11))
order by m
sqlserver 写法如下
with t as
(select RbAd ,
floor((row_number() over(order by RbAd ) - 1) / 10)+1 g,
(row_number() over(order by RbAd ) - 1)%10 m
from T_RbInfo where QgId='D1D1D1C1')
select [1], [2], [3], [4], [5], [6], [7], [8], [9], [10],[11]
from t
pivot (min(RbAd ) for g in([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],[11])) as tt
可以后台,数据过多时 过复杂的sql会影响查询性能
等楼下来回答
SQL本身不行,可以用function或者存储过程或者java代码
用sql就分页查询吧
SELECT RbAd FROM T_RbInfo LIMIT 10 WHERE QgID="D1D1D1C1"
试试看
SELECT RbAd FROM T_RbInfo WHERE QgID="D1D1D1C1" LIMIT 0, 10 ;
sql不好搞就代码去搞
select * from table limit (start-1)*pageSize,pageSize; 其中start是页码,pageSize是每页显⽰的条数。望采纳!
你要写个函数,用临时表,10条10条的读
SELECT ID,Name,Class
ROW_NUMBER() OVER(PARTITION BY Class ORDER BY ID) as NUM
FROM TAB_NAME WHERE NUM <10