本文主要介绍SQL SERVER数据库中一些常用的系统函数及其SQL SERVER 2005以上支持的开窗函数。

1.常用函数

--从字符串右边截取指定字符数

select RIGHT('HELLO', 2)   --LO

--受影响的行数

select @@ROWCOUNT

--求绝对值ABS()

SELECT ABS(-2.0)   --2.0

--计算指数的函数POWER()

, 0.5)

, 3)

--求平方根SQRT()

SELECT SQRT(64.02)

--取随机数,返回到之间的随机浮点值Rand()

SELECT Rand()

--将字符串转换为小写LOWER()

SELECT LOWER('HELLO WORLD')

--将字符串转换为大写UPPER()

SELECT UPPER(LOWER('HELLO WORLD'))

--取ASCII码ASCII()

SELECT ASCII('A')   --65

--取对应ASCII码的字符CHAR()

SELECT CHAR(ASCII('A'))   --A

--日期时间函数

--获取当前时间

SELECT GETDATE()

--获取日期部分

), GETDATE(), 101)  --03/11/2014

--获取时间部分

), GETDATE(), 108)  --17:00:10

--获取某个日期是礼拜几

SELECT DATENAME(WEEKDAY, GETDATE())

--返回guid,位的唯一值

select Newid()

--若P1非空,返回P1;否则,返回default默认值

COALESCE(P1,default)

COALESCE(P.FName, '没有开单人')

--返回当前所用语言名称

select @@language

--返回允许同时进行的最大用户连接数

select @@MAX_CONNECTIONS

--返回本地sql server的名称

select @@SERVERNAME

--返回当前安装的sql server的日期,版本和处理器类型

print @@VERSION

--确定输入的表达式是否为有效的日期

select ISDATE('2014-03-17')

), 123.00)+'abc'  --123.00abc

))+'abc'  --123.00abc

select cast('abc' as int)  --转换出错

select @@ERROR   --结果为,返回执行上一个sql语句的错误号,若没有错误,结果为

2.开窗函数

可以看到与聚合函数不同的是,开窗函数在聚合函数后增加了一个 OVER 关键字。开窗函数的调用格式为: 函数名(列) OVER(选项)   OVER 关键字表示把函数当成开窗函数而不是聚合函数。SQL 标准允许将所有聚合函数用做开窗函数,使用 OVER 关键字来区分这两种用法。

开窗函数 COUNT(*) OVER()对于查询结果的每一行都返回所有符合条件的行的条数。OVER 关键字后的括号中还经常添加选项用以改变进行聚合运算的窗口范围。如果 OVER 关键字后的括号中的选项为空,则开窗函数会对结果集中的所有行进行聚合运算。

SELECT FCITY , FAGE , 的所有记录数。

--ROW_NUMBER() OVER返回按某种规则排序后的某行的行数,只有SQL SERVER 2005以上支持

select * from (select ROW_NUMBER() OVER(ORDER BY UserID DESC) as RowNum, * FROM Tse_User) as A

WHERE A.RowNum >= 3 AND A.RowNum <= 4

-COUNT(0) OVER(), 统计总数

) OVER() from dbo.T_Reader where fage > 30

--COUNT(0) OVER(PARTITION BY fyearofbirth), 统计某个分区的数量

) OVER(PARTITION BY fage) FROM T_Reader

--Rank()遇相同的编号顺延,DENSE_RANK()遇相同的编号不变

select *, RANK() over(order by fage),

DENSE_RANK() over(order by fage),

ROW_NUMBER() over(order by fage) from t_reader

--按年龄排序,分成份,并计算每行对应的编号

) over(order by fsalary) from t_reader

--通过分区函数实现计算某个产品的销售量在同类产品总销售量中所占百分比

select T_Merchandise.FName, T_SaleBillDetail.FCount,

T_SaleBillDetail.FCount*1.0/SUM(T_SaleBillDetail.FCount) over(partition by T_Merchandise.FName) from

T_SaleBillDetail inner join T_Merchandise

on T_SaleBillDetail.FMerchandiseId = T_Merchandise.FId

如果您有什么问题,欢迎在下面评论,我们一起讨论,谢谢~

如果您觉得还不错,不妨点下右下方的推荐,有您的鼓励我会继续努力的~

[SQL SERVER系列]之常用函数和开窗函数介绍及实例的更多相关文章

  1. SQL Server进阶(八)查询——开窗函数、四大排名函数、透视数据、逆透视数据

    概述 ROW_NUMBER() OVER(PARTITION BY CustId ORDER BY ID DESC) https://www.jb51.net/article/75533.htm 开窗 ...

  2. SQL Server系列

    这里整理了我学习SQL Server的全部文章,包括从基础到高级,做一个目录,方便以后查找. SQL Server数据类型 SQL Server中开发常用的数据类型 单表查询和多表查询 一个单表查询的 ...

  3. Sql Server中不常用的表运算符之APPLY(2)

    在Sql Server中不常用的表运算符之APPLY(1)中提到,SQL2005中新支持的APPLY的特性:1.可以直接将表表达式(表值函数或者子查询)作为APPLY语句的右表连接左表.2.由于使用A ...

  4. SQL Server中,常用的全局变量

    在SQL Server中,全局变量是一种特殊类型的变量,服务器将维护这些变量的值.全局变量以@@前缀开头,不必进行声明,它们属于系统定义的函数.下表就是SQL Server中一些常用的全局变量. 全局 ...

  5. hive常用函数 wordCount--Hive窗口函数1.1.1 聚合开窗函数聚合开窗函数实战

    第三天笔记 第三天笔记 SQL练习Hive 常用函数关系运算数值计算条件函数日期函数重点!!!字符串函数Hive 中的wordCount1.1 Hive窗口函数1.1.1 聚合开窗函数聚合开窗函数实战 ...

  6. SQL Server 系列文章快速导航(SWF版)

    一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面的技术文章,在2014年1月终于鼓起勇气申请了微软S ...

  7. Sql Server中不常用的表运算符之UNPIVOT

    在Sql Server中不常用的表运算符之PIVOT中,介绍了PIVOT表运算符,现在来说说与之相对应的另一个表运算符UNPIVOT. 从名字可以看出,这个运算符的作用与PIVOT刚好相反,是将一行的 ...

  8. Microsoft SQL Server 管理 (常用管理及维护命令)

    --查询当前连接的实例名 select @@servername --察看任何数据库属性 sp_helpdb master --设置单用户模式,同时立即断开所有用户 alter database No ...

  9. SQL Server系列文章目录

    SQL Server系列文章目录SQL Server系列文章目录SQL Server系列文章目录SQL Server系列文章目录

随机推荐

  1. 关于Windows下如何查看端口占用和杀掉进程

    更详细博客参见: http://www.cnblogs.com/chenwenbiao/archive/2012/06/24/2559954.html 或可参考:http://www.cnblogs. ...

  2. 关于64位Linux编译hadoop2

    Apache官方提供hadoop2的安装包是在32位机器下编译的,生产环境一般使用64的Linux,那么需要在64位机器下重新编译可以查看hadoop-2.2.0-src下的BUILDING.txtB ...

  3. [未完成]关于Java网络编程总结

    网络的七层结构: 第一层:物理层,网线. 第二层: 数据链路层,交换机.交换机有IP地址.这一层的数据叫做帧 第三层:网络层,数据包方向的定义,路由器.现在也有具有路由功能的交换机.主要将从下层接收到 ...

  4. 转:android 设计模式合集

    转: http://mobile.51cto.com/android-419145.htm

  5. Linux 文件/文件夹操作命令

    1 cd命令 命令格式:cd  [目录名]    (cd和目录之间使用空格隔开) cd      进入用户主目录: cd  ~  进入用户主目录: cd  -  返回进入此目录之前所在的目录: cd  ...

  6. Vi三种模式详解

    命令行模式 (command mode/一般模式) 任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式:我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时 ...

  7. Ubuntu系统中Sogou输入法面板问题解决方案

    好消息- Ubuntu Kylin团队与搜狗公司合作开发了“搜狗输入法 for Linux”版本,支持Ubuntu 12.04 和 Ubuntu 14.04操作系统,在Sougou官网就可以下载到,附 ...

  8. VHD轻松实现双系统

    VHD 是微软虚拟磁盘文件.   VHD(Microsoft Virtual Hard Disk format). 目前可以使用Microsoft Virtual PC 2007 and Micros ...

  9. (转)DES、RSA、MD5、SHA、随机生成加密与解密

    一.数据加密/编码算法列表   常见用于保证安全的加密或编码算法如下:   1.常用密钥算法   密钥算法用来对敏感数据.摘要.签名等信息进行加密,常用的密钥算法包括:   DES(Data Encr ...

  10. HMTL笔记——Iframe

    1.以iframe 引入的银行支付界面 不能够弹出插件,但是用户安装了插件才能够去支付. 2.以Iframe引入的页面在引入的界面中的跳转都只能在当前Iframe中完成,如果想要跳出则需要window ...