- 有一张表 test 如下结构和虚拟数据
其中列num1、num2 数据来源是由一句tsql存错过程的随机数语句产生并修改的,其中行数据最先只会生成姓名,而不随机分配2个数字,只有触发这个存错过程才会修改对应的行的num1、num2.
select cast(ceiling(rand() * 2) as int) as num1 ,cast(ceiling(rand(checksum(newid())) * 5) as int) as num2
请教如何写一个存储过程,来每次点击的时候就像在客户端一样的会有集合来取到所有降序排列的行明细,然后将 num1、num2 记录成一个集合,然后再分别判断,当赵八这个人需要进行随机数分配时,不让他的第一位是1,因为第一位连续1这个数字已经5笔了,我需要第六笔刻意变成2,然后num2的判断是不能连续三笔都是一样的。比如说 张三的num2是 2 李四的num2是 2 到王五这就不能是2,是随机别的数,就是怎么也不会随机成3个一样num2的行数据。有的高手说是用临时表来做,可以贴代码给小弟参考参考吗?如果不用临时表可以用tsql语句解决吗,感谢,因为一些特殊的原因不能在c# 客户端做限制和判断,敬请大哥们不吝帮忙,感谢万分
(因位num1这个栏位的随机数只能是 1或者2,如果连续随机出过5个1或者5个2,那我就要人为干预第6个出现的随机数必须是相反的那个数
num2这个栏位是1-5 的区间,如果出现连续三条是一样的数字,那么也需要干预随机数不能第四条还是和之前三条一样的数字这个逻辑。以上、补充说明)