早教吧 育儿知识 作业答案 考试题库 百科 知识分享

SQLServer2008不放回抽样算法及代码写法例如:1-10中不放回抽5个数,结果会有诸如12345,13456,12456,13479,13579,这种连续5个数,连续4个数,连续3三个数,连续2个数,一个都不连续的,这些连续数字的个数

题目详情
SQL Server 2008 不放回抽样算法及代码写法
例如:1-10中不放回抽5个数,结果会有诸如12345,13456,12456,13479,13579,这种连续5个数,连续4个数,连续3三个数,连续2个数,一个都不连续的,这些连续数字的个数一并写入数据库,代码怎么写,主要是怎么用SQL Server 2008的语句来判断有几个数是连续的?
▼优质解答
答案和解析
declare @a int,@b int,@c int,@d int,@e int,@f int,@g int
set @g = 1
select @a=right(rand(),5)  --模拟随机五个数字
select @b = @a/10000, --求出万位的单个数字
       @c = (@a-@b*10000)/1000, --求出千位的单个数字
\x05   @d = (@a-@b*10000-@c*1000)/100,  --求出百位的单个数字
\x05   @e = (@a-@b*10000-@c*1000-@d*100)/10,  --求出十位的单个数字
\x05   @f = @a-@b*10000-@c*1000-@d*100-@e*10   --求出个位的单个数字
if(@f-@e=1)     --比较每个相邻的数字是否连续数字,如果是的话累计加1
\x05set @g =@g+1
if(@e-@d=1)    --比较每个相邻的数字是否连续数字,如果是的话累计加1
\x05set @g =@g+1
if(@d-@c=1)    --比较每个相邻的数字是否连续数字,如果是的话累计加1
\x05set @g =@g+1
if(@c-@b=1)    --比较每个相邻的数字是否连续数字,如果是的话累计加1
\x05set @g =@g+1
if(@b-@a=1)    --比较每个相邻的数字是否连续数字,如果是的话累计加1
\x05set @g =@g+1
if(@g=1)       --如果计数变量还是初始值1的时候,把变量清0.
    set @g = 0
print convert(varchar(10),@a) +'='+ convert(varchar(10),@b)+'+'+ convert(varchar(10),@c)+'+'+ convert(varchar(10),@d)+'+'+ convert(varchar(10),@e)+'+'+ convert(varchar(10),@f)+'一共有'+convert(varchar(10),@g)+'位连续数字'   --显示结果

--最后不知道你需要插入的目标表是什么,你只好自己插入了.
--如果帮到你的话,
看了 SQLServer2008不...的网友还看了以下:

我校三个年级共有24个班,学校为了了解同学们的心理状况,将每个班编号,依次为1到24,现用系统抽样  2020-06-22 …

诚问关于组合的详细答案从20个人中抽3个人,有几种抽法?这件事分三步:抽第1个、抽第2个、抽第3个  2020-06-22 …

采用简单随机抽样的方法,从含有6个个体的总体中抽取一个容量为3的样本.个体a前两次未被抽到,第三次  2020-06-22 …

我校三个年级共有24个班,学校为了了解同学们的心理状况,将每个班编号,依次为1到24,现用系统抽样  2020-06-22 …

某工厂的三个车间在12月份共生产了3600双皮靴,在出厂前要检查这批产品的质量,决定采用分层抽样的  2020-06-24 …

关于红球和蓝球在“排列组合上的概率”数学题目在一袋子里面,只有两个球,一个是红球,一个是蓝球,每次  2020-07-07 …

为了检验产品的质量,往往采用随机抽样的方法,抽取部分进行检验.现从一批产品中取出三件产品,设A=“  2020-07-13 …

有十八个球。编号1到18,抽取三次,一次抽取一个球。抽取后不放回。请问三次都抽不到编号1-5的概率  2020-07-16 …

小红和奶奶玩纸牌游戏一共有三十张牌,两人按顺序抽牌,每次抽1张牌或者两张牌,抽到最后一张牌的获胜.奶  2020-11-08 …

有十六张卡片,连续不放回的抽四张,抽中其中有蓝宝石的那张的概率是多少?如果每天抽一次,连续抽两个月都  2020-12-23 …