create function dbo.jiesheng(@Enter as int)
returns int
AS
begin
declare @sum int
select @sum =1
while @Enter >= 1
begin
@sum=@sum * @Enter
@Enter=@Enter-1
end
return @sum
end
我用的sql server2005写的,错误信息:
消息 102,级别 15,状态 1,过程 jiesheng,第 10 行
'@sum' 附近有语法错误。
消息 102,级别 15,状态 1,过程 jiesheng,第 14 行
'end' 附近有语法错误。
T-SQL 创建输入正整数,返回该正整数的阶乘。急!!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-03 01:57关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
你已经正确地定义了一个函数来计算给定数字的阶乘了。现在让我们看一下你的 SQL 查询是如何工作的。 在 SQL 中,我们不能直接使用
@Enter来存储变量,所以你需要将其转换为一个常量(例如,@Enter = 10)或使用一个全局变量。以下是修改后的查询:CREATE FUNCTION dbo.JieSheng (@Enter INT) RETURNS INT AS BEGIN DECLARE @Sum INT SET @Sum = 1 WHILE @Enter >= 1 BEGIN SET @Sum = @Sum * @Enter SET @Enter = @Enter - 1 END RETURN @Sum END这样就可以避免你在查询中使用
@Enter,同时也可以确保@Enter的值始终是一个非负整数。解决 无用评论 打赏 举报