SQL函数说明大全(7)

2019-04-22 08:52

http://5dblog.me

顾名思义,这个函数用于将字符串中的字符颠倒过来。这在处理连接列表中的单个字符值时将会被用到。

SELECT REVERSE('The stars near Mars are far from ours. ')

结果为:.sruo morf raf era sraM raen srats ehT STUFF()函数

这个函数可将字符串中的一部分替换为另一个字符串。它本质上是将一个字符串以特定的长度插入另一个字符串中的特定位置上。这对于源值与目的值的长度不一样的字符串替换是很有用的。下列代码用于将字符串中的价格替换为109.95:

Please submit your payment for 99.95 immediately.

价格值是从第32个字符开始的,有5个字符长。在这个位置上插入的子字符串有多长并不重要,只需要知道需要删除多少个字符就可以了。

SELECT STUFF('Please submit your payment for 99.95 immediately. ',

32, 5, '109.95')

结果为:Please submit your payment for 109.95 immediately. QUOTENAME()函数

这个函数和SQL Server对象名组合使用,以将结果传递给表达式。它只用于给输入的字符串加一对方括号,并返回新形成的字符串。如果参数包含保留的分隔符或者封装字符(比如引号或括号),这个函数将修改字符串,以便SQL Server能将结果字符串中的这类字符当成文本字符。如下面的例子所示,查询的结果如图6-10所示。

SELECT QUOTENAME(COLUMN_NAME) AS ColumnName FROM INFORMATION_SCHEMA. COLUMNS

数学函数

下表中列出的函数用于执行多种普通与特殊的数学运算,可以执行代数、三角、统计、估算与财政运算等运算。 函 数 ABS() ACOS() ASIN() ATAN() 返回一个数的绝对值 计算一个角的反余弦值,以弧度表示 计算一个角的反正弦值,以弧度表示 计算一个角的反正切值,以弧度表示 说 明 http://5dblog.me

ATN2() CEILING() COS() COT() DEGREES() EXP() FLOOR() LOG() LOG10() PI() POWER() RADIANS() RAND() 计算两个值的反正切,以弧度表示 返回大于或等于一个数的最小整数 计算一个角的正弦值,以弧度表示 计算一个角的余切值,以弧度表示 将一个角从弧度转换为角度 指数运算 返回小于或等于一个数的最大整数 计算以2为底的自然对数 计算以10为底的自然对数 返回以浮点数表示的圆周率 幂运算 将一个角从角度转换为弧度 返回以随机数算法算出的一个小数, 可以接收一个可选的种子值 ROUND() 对一个小数进行四舍五入运算, 使其具备特定的精度 SIGN() SIN() SQRT() SQUARE() TAN() 根据参数是正还是负,返回–1或者1 计算一个角的正弦值,以弧度表示 返回一个数的平方根 返回一个数的平方 计算一个角正切的值,以弧度表示 元数据函数

这是一些工具函数,它们返回SQL Server配置细节、服务器与数据库设置细节的信息,包括一组用于返回不同对象的属性状态的通用以及专用函数,这些函数把对Master数据库中系统表以及用户数据库的查询封装在函数中。建议读者使用这些函数以及其他的系统函数,而不是自己创建对系统表的查询,以防今后SQL Server版本对模式进行更改。

排列函数

这些函数被用于以与结果集顺序无关的特定顺序,枚举已排序的或排在前面的结果集。 ROW_NUMBER()函数

ROW_NUMBER()函数根据作为参数传递给这个函数的ORDER BY子句的值,返回一个不断递增的整数值。如果ROW_NUMBER的ORDER BY的值和结果集中的顺序相匹配,返回值将是递增的,以升序排列。如果ROW_NUMBER的ORDER BY子句的值和结果集中的顺序不同,这些值将不会按顺序列出,但它们表示ROW_NUMBER函数的ORDER BY子句的顺序。如下面的例子和结果所示:

SELECT ProductCategoryID http://5dblog.me

,Name ,ROW_NUMBER() OVER (ORDER BY Name) AS RowNum FROM Production.ProductCategory ORDER BY Name 由于ROW_NUMBER()调用中的ORDERBY子句和查询结果的顺序匹配,所以对这些结果按顺序列出,如下图所示:

不过,在函数调用中使用另一个ORDER BY子句时,这些值就是无序的了。

SELECT ProductCategoryID ,Name ,ROW_NUMBER() OVER (ORDER BY Name) AS RowNum FROM Production.ProductCategory ORDER BY ProductCategoryID 这是了解如何使用ORDER BY子句对结果进行排序的有效方法。如下图所示:

RANK()与DENSE_RANK()函数

这两个函数与ROW_NUMBER()函数类似,因为它们都返回一个基于ORDER BY子句的值。不过这些值不一定永远是唯一的。排列值对于所提供的ORDER BY子句中的重复结果而言也是重复的,而且唯一性是仅仅基于ORDER BY列表中的唯一值的。这些函数用不同的方法来处理重复的值。RANK()函数保留列表中行的位置序号,对于每个重复的值,该函数会跳过下面与其相邻的值,于是就可以将下一个不重复的值保留在正确的位置上。

其行为类似于短跑比赛中的并列成绩。例如刘翔与Dayron Robles(古巴)在110栏的比赛中都跑出了12’92的成绩,那他们就是并列第一,而其后的一名选手将会获得第三名的成绩。

SELECT ProductID ,Name ,ListPrice ,RANK() OVER (ORDER BY ListPrice DESC) AS [Rank] FROM Production.Product ORDER BY [Rank] 注意在下图的结果列表中,重复的价格值所对应的结果是相同的,而每个连接之后的值都被跳过了。比如,产品\Red, 52\和\都排在第1,而接下来的行\就排在第6了。

http://5dblog.me

DENSE_RANK()函数的工作方式与RANK()函数相同,不过它不会跳过每个连接后的值,这样就不会有值被跳过了,但是在连接处排列序号位置将会丢失。

SELECT ProductID ,Name ,ListPrice ,DENSE_RANK() OVER (ORDER BY ListPrice DESC) AS [Rank] FROM Production.Product ORDER BY [Rank] 下图的结果重复了排列值,但是不会跳过列中的任何数字。

NTILE(n)函数

这个函数也用于对结果进行排列,并返回一个整型的排列值,但是它不会对结果以唯一的排列顺序进行枚举,而是将结果切分为有限数量的排列组。比如,一个表有10 000行,使用1000为参数值调用NTILE()函数,即NTILE(1000),并将结果分成以10为单位的1000个组,每个组赋予相同的排列值。和本节讨论的其他排列函数一样,NTILE()函数也支持OVER(ORDER BY…)语法。下面的例子根据产品价格,按照从高到低的顺序把Product表分为50组产品:

SELECT ProductID ,Name http://5dblog.me

,ListPrice ,NTILE(50) OVER (ORDER BY ListPrice DESC) AS GroupedProducts FROM Production.Product ORDER BY GroupedProducts 结果为:

安全函数

与安全相关的函数返回SQL Server用户的角色成员和权限信息。这类函数也包括一组管理事件与跟踪的函数。下表显示了这些函数:

函 数 fn_trace_geteventinfo() fn_trace_getfilterinfo() fn_trace_getinfo() fn_trace_getable() HAS_DBACCESS() IS_MEMBER() IS_SRVROLEMEMBER() SUSER_SID() 说 明 为指定的跟踪ID返回一个填充事件信息的表类型值 为指定的跟踪ID返回一个填充与过滤器有关的信息的表类型值 为指定的跟踪ID返回一个填充跟踪信息的表类型值 为指定的跟踪ID返回一个填充文件信息的表类型值 返回一个表明当前用户是否有访问指定数据库权限的标志 返回一个表明当前用户是Windows组用户还是SQL Server用户的标志 返回一个表明当前用户是否是数据库服务器角色成员的标志 返回指定用户的登录名的安全ID,或者(如果参数被忽略)返回当前用户的安全ID。返回指定用户的用户ID,或者(如果参数被忽略的话)返回当前用户的用户ID SUSER_SNAME() USER_ID() USER_NAME() 返回指定安全ID的登录名。如果不提供任何安全ID,则返回当前用户的登录名 返回指定用户名的用户ID,或者(如果参数被忽略的话)返回当前用户的用户ID 返回指定用户ID的用户名 系统函数与系统变量

本节讨论具有多种用途的工具函数,包括值比较、值类型测试等功能。这个类别的函数也包罗了其他函数:

函 数 说 明


SQL函数说明大全(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:华南师范大学现代远程教育校外学习中心一览表 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: