早教吧作业答案频道 -->其他-->
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不...的网友还看了以下:
在下边的3×3的方格图中,已经有3格分别填入11、18、20三个数,如果中心方格填入的数为x,且每 2020-06-04 …
1.直接写得数1/2+1/31/2+1/41/3+1/51/4+2/31/3+3/51/6+2/7 2020-06-13 …
将1-50各按下面的各式排列.①用3×3的方框框出9个数(如阴影部分),方框中的9个数之和与该方框 2020-07-19 …
观察各式3*1=3,3*3=9,3*3*3=27,3*3*3*3=81...观察各式3*1=3,3 2020-07-19 …
Tn=3×3+5×3^2+7×3^3+.+(2n-1)×3^n-1+(2n+1)×3^n(3^2表 2020-07-29 …
数学巧妙运算题1.1+3+3的2次方+3的3次方+...+3的2005次方2.1+1/2+1/2的2 2020-11-19 …
本人读初一,现学到有理数的加减法,将-15、-9、-6、-3、0、3、6、9填入九宫格中.要求:使九 2020-12-05 …
(选修模块3-3)(15分)二氧化碳是导致全球变暖的主要原因之一,人类在采取节能减排措施的同时,也在 2020-12-18 …
下列说法正确的是?1空气开关跳起后,复位又跳起,说明电路中有开路.(什么是复位阿?)2家里的保险丝熔 2021-01-14 …
有理数b满足︱b︱<3,并且有理数a使得a<b恒成立,则a得取值范围是[]A.小于或等于3的有理数B 2021-02-04 …