2024-05-06 17:10:39
第一个问题比较简单,如果数字多,可以用动态SQL将数字写入一个临时表,最后join出来,这个数字少,实现方法如下:
select A+B from
(select '1' A union select '2' union select '3' union
select '4' union select '5' union select '6') a
cross join
(select '1' as B union select '2' union select '3' union
select '4' union select '5' union select '6') b
第二个问题需要使用动态SQL进行处理,代码如下:
declare @i int,@j int,@r int
set @i=2
while @i<100
begin
set @j=1--循环初始值
set @r=1--判定标识
while @j<@i
--如果找到除了1和它本身之外的能整除的数字(取余数等于0),则标志判定标识为否
begin
if @i%@j=0 and @i<>@j and @j<>1
begin
set @r=0
break
end
set @j=@j+1
end
--若判定标识为正确,则打印数字
if @r=1 print @i
--循环数+1
set @i=@i+1
end