用sql server怎么创建存储过程,判断输入参数是不是素数

用sql server怎么创建存储过程,判断输入参数是不是素数,第1张

create proc dbo.Usp_IsSuShu(@No int)

as

begin

if @No <=1 

return 0

declare @maxV int, @Index int

set @maxV = @No -1

set @Index = 2

while @Index < @maxV

begin

declare @maxV2 int,@Index2 int

set @maxV2 = @maxV

set @Index2 = @Index

while @Index2 < @maxV2

begin

if @Index2 * @Index = @No

select 0

set @Index2 = @Index2 + 1

end

set @Index = @Index + 1

end

select 1

end 

dbo.ChkIntIsSuShu(13) -- 返回值1,表示素数,0表示非素数。

下面是创建函数的示例代码:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `Fun_avg`(var_xs_id varchar(12), var_xn int) RETURNS float

BEGIN

DECLARE var_r float

SELECT AVG(tc_score) INTO var_r

FROM tc_scores

WHERE xs_id = var_xs_id AND xn = var_xn

RETURN var_r

END$$

DELIMITER

在上面的代码中,我们首先声明了一个返回值类型为 float 的变量 var_r。然后,我们使用 SELECT 语句查询 tc_scores 表中指定学号 var_xs_id 和指定学年 var_xn 的体测成绩的平均值,并将该平均值赋给 var_r。最后,我们使用 RETURN 语句将 var_r 的值返回给函数的调用者。

注意:在 MySQL 中,必须使用 DELIMITER 语句来改变默认的分号作为语句结束符的行为。因此,我们在创建函数时必须使用 DELIMITER 语句来指定自定义的分隔符(在本例中为 $$),并在函数结束后再次使用 DELIMITER 语句将分隔符恢复为默认值(即分号)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8416805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存