- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL函数说明大全
Posted on 2010-08-23 23:37 moss_tan_jun 阅读(26235) 评论(13) 编辑 收藏
下表给出了T-SQL函数的类别和描述。
函数类别 作用 聚合函数 执行的操作是将多个值合并为一个值。例如 COUNT、SUM、MIN 和 MAX。 配置函数 是一种标量函数,可返回有关配置设置的信息。 转换函数 将值从一种数据类型转换为另一种。 加密函数 支持加密、解密、数字签名和数字签名验证。 游标函数 返回有关游标状态的信息。 日期和时间函数 可以更改日期和时间的值。 数学函数 执行三角、几何和其他数字运算。 元数据函数 返回数据库和数据库对象的属性信息。 排名函数 是一种非确定性函数,可以返回分区中每一行的排名值。 行集函数 返回可在 Transact-SQL 语句中表引用所在位置使用的行集。 安全函数 返回有关用户和角色的信息。 字符串函数 可更改 char、varchar、nchar、nvarchar、binary 和 varbinary 的值。 系统函数 对系统级的各种选项和对象进行操作或报告。 系统统计函数 返回有关 SQL Server 性能的信息。 文本和图像函数 可更改 text 和 image 的值。 函数的组成
函数的目标是返回一个值。大多数函数都返回一个标量值(scalar value),标量值代表一个数据单元或一个简单值。实际上,函数可以返回任何数据类型,包括表、游标等可返回完整的多行结果集的类型。本章不准备讨论到这个深度,第12章将讲解如何创建和使用用户自定义函数,以返回更复杂的数据。
函数己经存在很长时间了,它的历史比SQL还要长。在几乎所有的编程语言中,函数调用的方式都是相同的:
Result=Function()
在T-SQL中,一般用SELECT语句来返回值。如果需要从查询中返回一个值,就可以把SELECT当成输出运算符,而不用使用等号:
SELECT Function()
一个论点
对于SQL函数而言,参数表示输入变量或者值的占位符。函数可以有任意个参数,有些参数是必须的,而有些参数是可选的。可选参数通常被置于以逗号隔开的参数表的末尾,以便于在函数调用中去除不需要的参数。
在SQL Server在线图书或者在线帮助系统中,函数的可选参数用方括号表示。在下列的CONVERT()函数例子中,数据类型的length和style参数是可选的:
CONVERT (data-type [(length)], expression[,style])
可将它简化为如下形式,因为现在不讨论如何使用数据类型:
CONVERT(date_type, expression[,style])
根据上面的定义,CONVERT()函数可接受2个或3个参数。因此,下列两个例子都是正确的:
SELECT CONVERT(Varchar(20), GETDATE())
SELECT CONVERT(Varchar(20), GETDATE(), 101) ?
这个函数的第一个参数是数据类型Varchar(20),第2个参数是另一个函数GETDATE()。GETDATE()函数用datetime数据类型将返回当前的系统日期和时间。第2条语句中的第3个参数决定了日期的样式。这个例子中的101指以mm/dd/yyyy格式返回日期。本章后面将详细介绍GETDATE()函数。即使函数不带参数或者不需要参数,调用这个函数时也需要写上一对括号,例如GETDATE()函数。注意在书中使用函数名引用函数时,一定要包含括号,因为这是一种标准形式。
确定性函数
由于数据库引擎的内部工作机制,SQL Server必须根据所谓的确定性,将函数分成两个不同的组。这不是一种新时代的信仰,只和能否根据其输入参数或执行对函数输出结果进行预测有关。如果函数的输出只与输入参数的值相关,而与其他外部因素无关,这个函数就是确定性函数。如果函数的输出基于环境条件,或者产生随机或者依赖结果的算法,这个函数就是非确定性的。例如,GETDATE()函数是非确定性函数,因为它不会两次返回相同的值。为什么要把看起来简单的事弄得如此复杂呢?主要原因是非确定性函数与全局变量不能在一些数据库编程对象中使用(如用户自定义函数)。部分原因是SQL Server缓存与预编译可执行对象的方式。例如,即席查询可以使用任何函数,不过如果打算构建先进的、可重用的编程对象,理解这种区别很重要。
以下这些函数是确定性的:
??AVG()(所有的聚合函数都是确定性的)
??CAST()
??CONVERT()
??DATEADD()
??DATEDIFF()
??ASCII()
??CHAR()
??SUBS
文档评论(0)