这个网上有很多例子么~~要善于利用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 dbofact(MyInt) from test01
则查询结果为 24
1234=24
如果是sql server 可以用isnumeric函数来判断是否为数字
如果为数字isnumeric返回1,否则为零。
如select from table1 where isnumeric(col1) <> 1
1、首先是找到标量函数,右键单击选择新建。
2、接着编写函数,一般都是带参数的,如下图所示;
3、然后执行完毕就可以看到自己创建的函数了,如下图所示;
4、接着我们在select中直接调用函数即可,如下图所示;
5、执行select语句,就可以看到函数返回的结果了,如下图所示;
6、最后你可以通过改变参数继续测试函数,如下图所示。完成效果图。
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
请告诉我没个函数是什么意思!!!
谢谢!!~~~
解析:
一、 数值函数
数值函数用于数值运算,其自变量与函数都是数值型数据。
1.取绝对值函数ABS( )
格式ABS(<nExp>)
功能计算nExp的值,并返回该值的绝对值。
2.指数函数EXP( )
格式EXP(<nExp>)
功能求以e为底、nExp值为指数的幂,即返回ex的值。
3.取整函数INT( )
格式INT(<nExp>)
功能计算nExp的值,返回该值的整数部分。
4.上界函数CEILING( )
格式CEILING(<nExp>)
功能计算nExp的值,返回一个大于或等于该值的最小整数。
5.下界函数FLOOR( )
格式FLOOR(<nExp>)
功能计算nExp的值,返回一个小于或等于该值的最大整数。
6.自然对数函数LOG( )
格式LOG(<nExp>)
功能求nExp的自然对数。nExp的值必须为正数。
7.常用对数函数
格式LOG10(<nExp>)
功能求nExp的常用对数。nExp的值必须为正数。
8.平方根函数SQRT( )
格式SQRT(<nExp>)
功能求非负nExp的平方根。
9.最大值函数MAX( )和最小值函数MIN( )
格式MAX(<nExp1>,< nExp2>[,< nExp3>])
MIN(<nExp1>,< nExp2>[,< nExp3>])
功能返回数值表达式中的最大值MAX( )和最小值MIN( )。
10.求余数函数MOD( )
格式MOD(<nExp1>,<nExp2>)
功能返回nExp1除以nExp2的余数。余数的小数位数与nExp1相同,符号与nExp2相同。
11.四舍五入函数ROUND( )
格式ROUND(<nExp1>,< nExp2>)
功能返回nExp1四舍五入的值, nExp2表示保留的小数位数。
12.π函数PI( )
格式PI( )
功能返回常量π的近似值
13.正弦函数SIN( )
格式SIN(<nExp>)
功能返回nExp的正弦值。nExp以弧度为单位,函数值域为[-1,1]。
14.余弦函数COS( )
格式COS(<nExp>)
功能返回nExp的余弦值。nExp以弧度为单位,函数的值域为[-1,1]。
15.正切函数TAN( )
格式TAN(<nExp>)
功能返回nExp的正切值。nExp以弧度为单位,其值为π/2或- π/2时,系统返回一个绝对值很大的数。
16.反正弦函数ASIN( )
格式ASIN(<nExp>)
功能返回nExp的反正弦值。自变量值必须在[-1,1]内,函数值为弧度,且值域为[-π/2, π/2]。
17.反余弦函数ACOS( )
格式ACOS(<nExp>)
功能返回nExp的反余弦值。自变量的值必须在[-1,1]内,函数值为弧度,值域为[-π/2, π/2]。
18.反正切函数ATAN( )
格式ATAN(<nExp>)
功能返回nExp的反正切值。函数值为弧度,值域为(-π/2, π/2)。
二、 字符函数
字符函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。函数中涉及的字符型数据项,均以cExp表示。
1.子串位置函数
格式AT(<cExp1>,< cExp 2>)
功能返回串cExp1在串cExp2中的起始位置。函数值为整数。如果串cExp2不包含串cExp1,函数返回值为零。
2.取左子串函数LEFT( )
格式LEFT(<cExp>,<nExp>)
功能返回从cExp串中第一个字符开始,截取nExp个字符的子串。
3.取右子串函数RIGHT( )
格式RIGHT(<cExp >,< nExp>)
功能返回从cExp串中右边第一个字符开始,截取nExp个字符的子串。有关说明同LEFT( )函数。
4.取子串函数SUBSTR( )
格式SUBSTR (<cExp>,<nExp1> [,< nExp2>] )
功能返回从串cExp中第nExp1个字符开始,截取nExp2个字符的子串。
5.字符串长度函数LEN( )
格式LEN(<cExp>)
功能返回cExp串的字符数(长度)。函数值为N型。
6.删除字符串前导空格函数LTRIM( )
格式LTRIM(<cExp>)
功能删除cExp串的前导空格字符。
7.删除字符串尾部空格函数RTRIM( ) | TRIM( )
格式RTRIM | TRIM(<cExp>)
功能删除cExp串尾部空格字符。
8.空格函数SPACE( )
格式SPACE (<nExp>)
功能返回一个包含nExp个空格的字符串。
9.字符串替换函数STUFF( )
格式STUFF(<cExp1>,<nExp1>,<nExp2>,<cExp2>)
功能从nExp1指定位置开始,用cExp2串替换 cExp1串中nExp2个字符。
10.字符复制函数 REPLICATE( )
格式REPLICATE (<cExp>,<nExp>)
功能返回将cExp串重复nExp次的字符串。
11.定义输出格式函数 TRANSFORM( )
格式TRANSFORM (<eExp>,<cExp>)
功能按格式描述式cExp指定的格式,输出任意表达式eExp的值。
12.大小写转换函数LOWER( ) 和UPPER( )
格式LOWER (<cExp>)
UPPER (<cExp>)
功能LOWER( )将cExp串中字母全部变成小写字母,UPPER( )将cExp串中字母全部变成大写字母,其它字符不变。
13.宏替换函数 &
格式& < cVar >[< cExp >]
功能替换出字符型变量cVar中字符。
三、 日期时间函数
日期时间函数是处理日期型或日期时间型数据的函数。其自变量为日期型表达式dExp或日期时间型表达式tExp。
1.系统日期函数DATE( )
格式DATE()
功能返回当前系统日期,此日期由Windows系统设置。函数值为D型。
2.系统时间函数TIME( )
格式TIME([<nExp>])
功能返回当前系统时间,时间显示格式为hh:mm:ss。若选择了nExp ,则不管为何值,返回的系统时间还包括秒的小数部分,精确至小数点后两位。函数值为C型。
3.日期函数DAY( )
格式DAY(<dExp>)
功能返回dExp式中的天数。函数值为N型
4.星期函数DOW( )、CDOW( )
格式DOW(<dExp>)
CDOW(<dExp>)
功能DOW( )函数返回dExp式中星期的数值,用1~7表示星期日~星期六。函数值为N型。CDOW( ) 函数返回dExp式中星期的英文名称。函数值为C型。
5.月份函数MONTH( )、CMONTH( )
格式MONTH(<dExp>)
CMONTH(<dExp>)
功能MONTH( )函数返回dExp式中月份数。函数值为N型。CMONTH( )函数则返回月份的英文名。函数值为C型。
6.年份函数YEAR( )
格式YEAR(<dExp>)
功能函数返回dExp式中年份值。函数值为N型。
四、转换函数
在数据库应用的过程中,经常要将不同数据类型的数据进行相应转换,满足实际应用的需要。Visual FoxPro系统提供了若干个转换函数,较好地解决了数据类型转换的问题。
1.ASCII码函数ASC( )
格式ASC (<cExp>)
功能返回cExp串首字符的ASCII码值。函数值为N型。
2.ASCII字符函数CHR( )
格式CHR(<nExp >)
功能返回以nExp值为ASCII码的ASCII字符。函数值为C型。
3.字符日期型转换函数CTOD( )
格式CTOD(<cExp>)
功能把“××/××/××”格式的cExp串转换成对应日期值。函数值为D型。
4.日期字符型转换函数DTOC( )
格式DTOC(<dExp >〔, 1〕)
功能把日期dExp转换成相应的字符串。函数值为C型。
5.数值字符型转换函数STR( )
格式STR(<nExp1>[,< nExp2>][,< nExp3>])
功能将nExp1的数值转换成字符串形式。函数值为C型。
6.字符数值型转换函数VAL( )
格式VAL (<cExp>)
功能将cExp串中数字转换成对应数值,转换结果取两位小数。函数值为N型。
五、 测试函数
在数据库应用的 *** 作过程中,用户需要了解数据对象的类型、状态等属性,Visual FoxPro提供了相关的测试函数,使用户能够准确地获取 *** 作对象的相关属性。
1.数据类型函数TYPE( )
格式TYPE(<cExp >)
功能返回cExp 串表示的数据对象的数据类型,返回值是一个表示数据类型的大写字母。C:字符型,D:日期型,N:数值型,L:逻辑型,M:备注型,G:通用型,U:未定义。
2.文件查找函数FILE()
格式FILE(<cExp>)
功能根据cExp串中指定路径查找文件,如未指定路径,则在默认目录中查找。文件存在,返回逻辑真(T) 值,否则为逻辑假(F)值。
3.条件测试函数IIF( )
格式IIF(<lExp >,<eExp 1>,<eExp2>)
功能逻辑表达式lExp值为真(T),返回表达式eExp1的值,否则返回表达式eExp2的值。eExp1和eExp2可以是任意数据类型的表达式。
4.表结束标志测试函数EOF( )
格式EOF([<工作区号> | <别名>])
功能测试记录指针是否移到表结束处。如果记录指针指向表中尾记录之后,函数返回真(T),否则为假(F)。
5.表起始标识测试函数BOF ( )
格式BOF ([<工作区号> | <别名>])
功能测试记录指针是否移到表起始处。如果记录指针指向表中首记录前面,函数返回真(T),否则为假(F)。工作区说明见EOF()函数。
6.当前记录号函数RECNO()
格式RECNO([<工作区号> | <别名>])
功能返回指定工作区中表的当前记录的记录号。对于空表返回值为1。
7.当前记录逻辑删除标志测试函数DELETED( )
格式DELETED([<工作区号> | <别名>])
功能测试指定工作区中表的当前记录是否被逻辑删除。如果当前记有逻辑删除标记,函数返回真(T),否则为假(F)。
8.记录数函数RECCOUNT( )
格式RECCOUNT ([<工作区号> | <别名>])
功能返回指定工作区中表的记录个数。如果工作区中没有打开表则返回0。
9.记录大小测试函数RECSIZE( )
格式RECSIZE( [<工作区号> | <别名>] )
功能返回指定工作区中表的记录总长度。如果工作区中没有打开表则返回0。
10.屏幕列坐标和行坐标函数 COL( )、ROW( )
格式COL ( )
ROW()
功能COL ( )返回光标的列坐标值,ROW ( )返回光标的行坐标值。
11.打印机列坐标和行坐标函数PCOL( ),PROW( )
格式PCOL( )
PROW()
功能返回打印机打印头所处位置的列坐标和行坐标。
引用 2 楼 tangren 的回复:如果要摸拟每五秒,可以使用一个JOB来调用一个存储过程来定时写入数据。如果要一次性写入,只需要使用一个循环就可以了,如果要产生随机数,可以使用dbms_randomvalue函数 使用数据库JOB实现,每5秒调用一次!
1,第一个
create function dboF_convertToGrade (@score INT)
RETURNs VARCHAR(50)
AS
BEGIN
DECLARE @freturn VARCHAR(255)
SET @freturn=''
IF(@score>=95)
SET @freturn='优秀'
IF(@score>=90 AND @score<95)
SET @freturn='良好'
IF(@score>=80 AND @score<90)
SET @freturn='中'
IF(@score>=60)
SET @freturn='及格'
IF(@score<60)
SET @freturn='不及格'
RETURN @freturn
END
2、第二个
create function dboF_getStudentsScoreByDepartmentAndCourse (@Coursename VARCHAR(50),@Department VARCHAR(50))
RETURNS @t_studentScore TABLE(
Stuentname VARCHAR(50),
Score INT
)
AS
BEGIN
--自己写检索sql,你的表名称和结构我不知道
RETURN
END
3、第三个
SELECT FROM
dboF_getStudentsScoreByDepartmentAndCourse ('数据库技术','信息工程系')
后面的没表结构 ,没法答
数据库中的函数封装了一些通用的功能,例如日期类型和字符串类型之间的转换,每个数据库系统都内置了一些函数,当然用户也可以自己定义自己的函数。 这些函数可以在sql和后台存储过程或触发器中使用,但是使用了这些函数的SQL已经不是标准的SQL了,无移植性可言。所以一般情况下,在SQL中尽量不要用自定义的函数,要用的话也最好用在储存过程或触发器中。即使数据库内置的函数也尽量避免,因为每个数据库的写法都不同,日期类型和字符串的转换就是个例子。 在使用函数带来的优点时,同时也失去了移植性。 当然,在移植一个程序到不同数据库时,使用函数有时可避免修改sql。比如在使用源A数据库时,sql中包含大量的函数fa,但是目标数据库B中对应的函数是fb,这时可以在数据库B中建立一个fa的函数,就避免了修改sql语句。
以上就是关于数据库技术与应用—SQL Seerver问题:编写用户定义函数,输入正整数,返回该正整数的阶乘值!全部的内容,包括:数据库技术与应用—SQL Seerver问题:编写用户定义函数,输入正整数,返回该正整数的阶乘值!、数据库表中有一列中的有些数据不是数字,如何编写一个函数找出这些异常数字、SQL中如何调用一个函数啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)