SQL 如何让某一列循环从1到5递增
答案:1 悬赏:20 手机版
解决时间 2021-01-16 14:55
- 提问者网友:夢醒日落
- 2021-01-15 21:25
SQL 如何让某一列循环从1到5递增
最佳答案
- 五星知识达人网友:英雄的欲望
- 2021-01-15 21:32
是查询结果中要求某一列循环从1到5递增? 可以使用row_number()函数给查询结果记录编号,然后整除5,余数为0的改为5即可。示例:
select s0.val, case when s0.idx = 0 then 5 else s0.idx end as idx
from (
select s.val, row_number() over (order by val) % 5 as idx
from (
select 'a' as val
union all select 'b'
union all select 'c'
union all select 'd'
union all select 'e'
union all select 'f'
union all select 'g'
union all select 'h'
union all select 'i'
union all select 'j'
union all select 'k'
union all select 'k'
union all select 'l'
) s
) s0 该查询在SQL Server 2005上通过;其他数据库方法类似即可。
如果是更新已有记录,则可以通过游标逐条更新。
select s0.val, case when s0.idx = 0 then 5 else s0.idx end as idx
from (
select s.val, row_number() over (order by val) % 5 as idx
from (
select 'a' as val
union all select 'b'
union all select 'c'
union all select 'd'
union all select 'e'
union all select 'f'
union all select 'g'
union all select 'h'
union all select 'i'
union all select 'j'
union all select 'k'
union all select 'k'
union all select 'l'
) s
) s0 该查询在SQL Server 2005上通过;其他数据库方法类似即可。
如果是更新已有记录,则可以通过游标逐条更新。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯