sql语句可以将查询的结果10个为一组显示吗?

怎么让图一的查询结果像图二那样按顺序一行只显示10个呢?
是一条sql语句就能搞定,还是得靠后台实现啊,怎么写啊
或者我用后台查出了所有的结果,前台function可以实现一行显示10个嘛,怎么写这个function啊

img

img

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

img


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

img

可以后台,数据过多时 过复杂的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