根据给定变量循环结果求助

yiminglian 2018-07-29 12:44:21
数据库中有7 个人,一列 id 一列 姓名
我想实现 定义一个人数 和总数
如定义了总数为10,人数为3 那么就取id为1-3的三个人循环查询结果为10个
结果:
序号 人
1 user1
2 user2
3 user3
4 user1
5 user2
6 user3
7 user1
8 user2
9 user3
10 user1
如定义了总数为6,人数为5 那么就取id为1-5的五个人循环查询结果为6个第一个人出现两次
结果:
序号 人
1 user1
2 user2
3 user3
4 user4
5 user5
6 user1
...全文
111 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinger126 2018-07-31
  • 打赏
  • 举报
回复
--75,90

DECLARE @cts INT --总数
DECLARE @ps INT --人数
SELECT @ps=COUNT(*) FROM t_user

;WITH t AS (SELECT 人,ROW_NUMBER() OVER(ORDER BY 人) rn FROM t_user),
m AS (
SELECT t.人,t.rn,b.number from
t,(SELECT number FROM master..spt_values WHERE type='P' AND number BETWEEN 1 AND @cts/@ps) b
UNION ALL
SELECT t.人,t.rn,9999 FROM t,(SELECT number FROM master..spt_values WHERE type='P' AND number BETWEEN 1 AND @cts%@ps) b
WHERE t.rn=b.number )
SELECT ROW_NUMBER() OVER (ORDER BY number,rn) 序号,人 FROM m
  • 打赏
  • 举报
回复
通过临时表,游标,甚至是通过应用程序都可以比较轻松的实现你这个要求,楼主你可以尝试一下

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧