如题所述
这个网上有很多例子么~~要善于利用google和baidu么~~ 呵呵
在库中建立一个函数,代码为:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- 计算输入参数的阶乘
CREATE FUNCTION [dbo].[Factorial](@num INT)
RETURNS BIGINT
AS
BEGIN
DECLARE @Result BIGINT;
DECLARE @i INT;
SELECT @Result = 1;
SELECT @i = 1;
IF (@num < 1)
BEGIN
-- 如果输入的参数小于1返回1
SELECT @Result = 1
END
ELSE
BEGIN
-- 循环计算阶乘
WHILE (@i <= @num)
BEGIN
SELECT @Result = @Result * @i;
SELECT @i = @i + 1;
END
END
-- 返回结果
RETURN @Result;
END
假设有表test01,列MyInt,类型为Int,值为4,执行查询:
select dbo.fact(MyInt) from test01
则查询结果为 24
1*2*3*4=24
在库中建立一个函数,代码为:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- 计算输入参数的阶乘
CREATE FUNCTION [dbo].[Factorial](@num INT)
RETURNS BIGINT
AS
BEGIN
DECLARE @Result BIGINT;
DECLARE @i INT;
SELECT @Result = 1;
SELECT @i = 1;
IF (@num < 1)
BEGIN
-- 如果输入的参数小于1返回1
SELECT @Result = 1
END
ELSE
BEGIN
-- 循环计算阶乘
WHILE (@i <= @num)
BEGIN
SELECT @Result = @Result * @i;
SELECT @i = @i + 1;
END
END
-- 返回结果
RETURN @Result;
END
假设有表test01,列MyInt,类型为Int,值为4,执行查询:
select dbo.fact(MyInt) from test01
则查询结果为 24
1*2*3*4=24
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-06-07
CREATE FUNCTION DBO.UF_Factorial
(
@Input_Int INT
)
RETURNS INT
AS
BEGIN
DECLARE @Num INT
DECLARE @Factorial INT
SET @Num = 1
SET @Factorial = 1
IF @Input_Int = 0
BEGIN
RETURN 0
END
ELSE
BEGIN
WHILE @Num < @Input_Int + 1
BEGIN
SET @Factorial = @Factorial * @Num
SET @Num = @Num + 1
END
END
RETURN @Factorial
END
--赋值为5
--输出@i = 120
DECLARE @I INT
SET @I = DBO.UF_Factorial(5)
PRINT @I
(
@Input_Int INT
)
RETURNS INT
AS
BEGIN
DECLARE @Num INT
DECLARE @Factorial INT
SET @Num = 1
SET @Factorial = 1
IF @Input_Int = 0
BEGIN
RETURN 0
END
ELSE
BEGIN
WHILE @Num < @Input_Int + 1
BEGIN
SET @Factorial = @Factorial * @Num
SET @Num = @Num + 1
END
END
RETURN @Factorial
END
--赋值为5
--输出@i = 120
DECLARE @I INT
SET @I = DBO.UF_Factorial(5)
PRINT @I