首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用循环数字序列更新数据库表字段(2-4)

如何使用循环数字序列更新数据库表字段(2-4)
EN

Stack Overflow用户
提问于 2014-09-04 02:18:49
回答 2查看 38关注 0票数 2

我在这个问题上苦苦思索了几个小时,搜索了谷歌,但一无所获..

我正在尝试使用每行中数字(2,3,4)的循环序列来更新SQL Server表。

代码语言:javascript
复制
update table 
set fieldname = (*black magic*) 
where otherfieldname = something

所以结果将会是

代码语言:javascript
复制
other fields|2|other fields|
other fields|3|other fields|
other fields|4|other fields|
other fields|2|other fields|
other fields|3|other fields|
other fields|4|other fields|
other fields|2|other fields|
other fields|3|other fields|

欢迎任何想法!

干杯

EN

回答 2

Stack Overflow用户

发布于 2014-09-04 02:23:52

您可以使用row_number生成升序序列号。取mod 3得到一个介于0和2之间的数字,然后再加上2,使其介于2和4之间。

代码语言:javascript
复制
WITH T 
     AS (SELECT *, 
                ( ROW_NUMBER() 
                    OVER ( ORDER BY @@SPID) % 3 ) + 2 AS X 
         FROM   YourTable) 
UPDATE T 
SET    YourCol = X 
票数 0
EN

Stack Overflow用户

发布于 2014-09-04 02:33:32

Ntile(limit)将为您的表提供均匀的数字分布。其中'limit‘是应该有多少个不同的值。只需将偏移量加1即可。

代码语言:javascript
复制
with t1 as (
select *, blackMagic = ntile(3) over(order by newid()) + 1
from someTable
)
update t1
set fieldname = blackMagic
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25651073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档