根据要求生成随机数的问题
要求 
 1.生成的数字大于10000000小于20000000 
 2.随机数第7位都为2 
 3.前6位数字相加结果的个位数是第8位 
 4.生成的数字写入表abc(只有一个字段num)   
 就60分了,答对就请拿走,谢谢谢谢   
------解决方案--------------------先生成一个满足条件的所有数字的表,然后   
 select top 1 id from t order by newid()
------解决方案----------------------以下SQL语句用于生成满足条件的数值: 
 set rowcount 10000000 
 select identity(int,10000000,1) as id into # from sysobjects a,sysobjects b,sysobjects c 
 set rowcount 0   
 delete from #  
 where  
     (id/10000000+(id/1000000)%10+(id/100000)%10+(id/10000)%10+(id/1000)%10+(id/100)%10) <> id%10 
     or 
     (id/10)%10 <> 2   
 select count(*) from #   
 truncate table # 
 drop table #
------解决方案--------------------  DECLARE  
 	@begin int, 
 	@end int, 
 	@value varchar(100) 
 SELECT 
 	@begin = 10000000, 
 	@end = 20000000   
 -- 随机数 
 SELECT  
 	@value = @begin  
 		+ (ABS(CHECKSUM(NEWID())) % (@end - @begin + 1))   
 -- 处理第 7 位 
 IF SUBSTRING(@value, 7, 1)  <>  2 
 	SET @value = STUFF(@value, 7, 1, 2)   
 -- 处理第 8 位 
 DECLARE @a int, @b int 
 SELECT 
 	@a = 1,  
 	@b = 0 
 WHILE @a  <= 6 
 	SELECT  
 		@b = @b + SUBSTRING(@value, @a, 1), 
 		@a = @a + 1 
 SET @value = STUFF(@value, 8, 1, RIGHT(@b, 1)) 
 SELECT CONVERT(int, @value)