早教吧作业答案频道 -->其他-->
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的语句来判断有几个数是连续的?
例如: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)+'位连续数字' --显示结果
--最后不知道你需要插入的目标表是什么,你只好自己插入了.
--如果帮到你的话,
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不...的网友还看了以下:
2个开关控制2盏灯的电路图怎么画就是最简单的那种,2个开关分别控制2盏灯~~?火线还有零线的电路图 2020-04-26 …
在一个不透明的口袋里装有大小相同的红,黄,蓝三种颜色的小球其中红球4个、篮球2个,如果从中任意摸出 2020-05-16 …
九年级数学题 一元二次方程(在线等~~某果园有100棵桃树,一棵桃树平均结100个桃子,现准备多种 2020-05-16 …
要解析.随便问下.这种2个以上的等位基因控制的题目,该怎么解比较快?鼠尾草植株有红、白、紫三种颜色 2020-05-17 …
列一元二次方程某果园有100棵桃树,一棵桃树平均结1000个桃子,现准备多种一些桃树以提高产量,试 2020-05-21 …
文娱晚会中,学生的节目有9个,教师的节目有2个,如果教师的节目不排在最后1个,那么有多少种排法? 2020-06-03 …
如何做好一个挑拨离间的人都需要注意点什么?我想挑拨一下,我们2个老板之间的关系,请问我要注意什么, 2020-06-04 …
铸造车间共有86人,若每人每天可以.铸造车间共有86人,若每人每天可以加工A种零件15个或B种零件 2020-06-07 …
有的数可用2个或2个以上的连续整数的和来表示,如9=4+5,=2+3+4.9有两种2个或2个以上的 2020-06-27 …
数学高手帮帮忙解一下这道题-------------------谢过某苹果园有200棵苹果树,每棵 2020-08-03 …