sqlserver函数

来源:互联网 发布:科比对阵马刺队数据 编辑:程序博客网 时间:2024/04/30 19:04
--*********************************************************************************************--*********************************sqlserver函数大全*******************************************--*********************************************************************************************--ascii(字符串表达式)--返回最左侧的ASCII码值select ASCII('AB') as ascii   --返回65--char(整数表达式)--ASCII 码转换为字符select CHAR(65) as char   --返回A--charindex(字符串表达式 1, 字符串表达式2[,整数表达式])--查找字符串匹配位置号select CHARINDEX('a','gdsahhfah')   --返回4select CHARINDEX('a','gdsahhfah',5) --返回8--difference(字符串表达式 1,字符串表达式 2)--返回一个0 到 4 的整数值,指示两个字符表达式的之间的相似程度--0 表示几乎不同或完全不同,--4 表示几乎相同或完全相同。select DIFFERENCE('aa','bb')select DIFFERENCE('eceeaag','ab')--left(字符串表达式,整数表达式)--返回字符串中从左边开始指定个数的字符select LEFT('sbcaaabc',4)    --返回sbca--right(字符串表达式,整数表达式)--返回字符串中从右边开始指定个数的字符select RIGHT('gdacdf',3)    --返回cdf--len(字符串表达式)--返回指定字符串表达式的字符数,其中不包含尾随空格select LEN(' a bcdef  ')    --返回8--lower(字符串表达式)--返回大写字符数据转换为小写的字符表达式select LOWER('AAAA')    --返回aaaa--upper(字符串表达式)--返回小写字符数据转换为大写的字符表达式select UPPER('aaaa')    --返回AAAA--ltrim(字符串表达式)--返回删除了前导空格之后的字符表达式select LTRIM('   abc')  --返回abc--rtrim(字符串表达式)--返回删除了尾随空格之后的字符表达式select RTRIM('abc   ')  --返回abc--reverse(字符串表达式)--返回指定字符串反转后的新字符串select REVERSE('12345') --返回54321--space(整数表达式)--返回由指定数目的空格组成的字符串select '123'+SPACE('2')+'b'--str(float 型小数[,总长度[,小数点后保留的位数]])--返回由数字转换成的字符串。返回字符数不到总长度的前面补空格,超过总长度的截断小数位。如果需要截断整数位则返回**--注意在截断时遵循四舍五入总长度。它包括小数点、符号、数字以及空格。默认值为10--小数点后最多保留16 位。默认不保留小数点后面的数字select STR('123.567',10,3)   --返回'   123.567'--stuff(字符串表达式 1,开始位置,长度,字符串表达式 2)--在指定的开始位置删除指定长度的字符,并在指定的开始位置处插入字符串表达式select STUFF('abcdef',3,2,'ABC')  --返回abABCef--substring(字符串表达式,开始位置,长度)--返回截取的字符串select SUBSTRING('abcdef',2,4)  --返回bcde--replace(字符串表达式 1,字符串表达式 2,字符串表达式 3)--返回替换字符串select REPLACE('abcdefbc','bc','BC')  --返回aBCdefBC--dateadd(日期部分,数字,日期)--返回给指定日期加上一个时间间隔后的新的日期值select DATEADD(YEAR,10,'2000-9-9')   --返回2010-09-09 00:00:00--datediff(日期部分,开始日期,结束日期)--返回两个指定日期的指定日期部分的差的整数值,在计算时由结束日期减去开始日期select DATEDIFF(YEAR,'2000-9-9','2010-9-9')  --返回10--datename(日期部分,日期)--返回表示指定日期的指定日期部分的字符串--dw 表示一星期中星期几,wk 表示一年中的第几个星期,dy 表示一年中的第几天select datename(mm,'2007-12-11')   --返回 12select DATENAME(dw,'2016-9-6')   --返回星期二select DATENAME(WK,'2016-9-6')   --返回37select DATENAME(DY,'2016-9-6') --返回250--datepart(日期部分,日期)--返回表示指定日期的指定日期部分的整数select DATEPART(YEAR,'2016-9-6')  --返回2016--getdate()--返回当前系统日期和时间select GETDATE()   --返回2016-09-06 11:30:52--返回表示当前的UTC(世界标准时间)时间。即格林尼治时间select getutcdate()--rand([整数表达式])--随机数select RAND()--round(数值表达式[,长度[,操作方式]])--返回一个数值,舍入到指定的长度。注意返回的数值和原数值select ROUND(1235.4674,1)  --返回1235.5000--convert(数据类型[(长度)],表达式[,样式])--返回年龄:23(注意:如果想要在结果中正确显示中文需要在给定的字符串前面加上 N,加 N 是为了使数据库识别Unicode 字符)select N'年龄:'+convert(nvarchar,23) select convert(nvarchar ,getdate())  --返回'09  6 2016 11:40AM'--cast(表达式 as 数据类型[(长度)])--将一种数据类型的表达式显式转换为另一种数据类型的表达式select cast(123 as nvarchar)       --返回 123--newid()--返回一个GUID(全局唯一表示符)值select NEWID() as GUID--isnumeric(任意表达式)--判断表达式是否为数值类型或者是否可以转换成数值。是返回1,不是返回 0select ISNUMERIC('g')    --返回0select ISNUMERIC('113')  --返回1--isnull(任意表达式 1,任意表达式 2)--1 不为 NULL,则返回它的值;否则,在将任意表达式2 的类型转换为任意表达式1的类型(如果这两个类型不同)后,返回任意表式2 的值。select ISNULL(null,'234g')     --返回234gselect ISNULL('gsgd','33333')  --返回gsgd--isdate(任意表达式)--确定输入表达式是否为有效日期或可转成有效的日期。是返回1,不是返回 0select ISDATE('gggs')--返回0select ISDATE('2019-5-8')   --返回1--排名函数的常用使用格式:函数名() over (order by 列名 [asc|desc][,列名……])--**********************************************************************************************************************--row_number无参数,需与over一起用--为结果集内每一行进行编号,从1开始后面行依次加 1select empId,empName,Salary,row_number() over(order by Salary desc) as rank from Tab_Salary   --返回1,2,3,4的排名--rank无参数--如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名不连续。例如,如果有价格最高的两种产品的价格相同,它们将列第一。--由于已有两行排名在前,所以具有下一个最高价格的产品将排名第三。该排名等于该行之前的所有行数加一。因此,RANK 函数并不总返回连续整数。select empId,empName,Salary,rank() over(order by Salary desc) as rank from Tab_Salary     --返回1,1,3,4的排名--dense_rank无参数--如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名连续。--例如,如果有价格最高的两种产品的价格相同,它们将并列第一,下一个最高价格的产品将排名第二。--因此,DENSE_RANK 函数返回的数字没有间断,并且始终具有连续的排名select empId,empName,Salary,dense_rank() over(order by Salary desc) as rank from Tab_Salary   --返回1,1,2,3--**********************************************************************************************************************--聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。--聚合函数的常用使用格式:函数名([all|distinct] 表达式)--all:默认值,对所有的值进行聚合函数运算包含重复值。--distinct: 消除重复值后进行聚合函数运算--**********************************************************************************************************************--avg(n)--返回组中各值的平均值。空值将被忽略。 表达式为数值表达式select AVG(Salary) from Tab_Salary--count(n)--返回组中的项数。COUNT(*) 返回组中的项数。包括 NULL 值和重复项。如果指定表达式则忽略空值。表达式为任意表达式select COUNT(*) from Tab_Salaryselect COUNT(distinct Salary) from Tab_Salary  --消除重复后的个数--min(n)--返回组中的最小值。空值将被忽略。表达式为数值表达式,字符串表达式,日期select min(Salary) from Tab_Salary--max(n)--返回组中的最大值。空值将被忽略。表达式为数值表达式,字符串表达式,日期select max(Salary) from Tab_Salary--sum--返回组中所有值的和。空值将被忽略。表达式为数值表达式select sum(Salary) from Tab_Salary


参考博客:http://blog.csdn.net/travylee/article/details/7216481

0 0
原创粉丝点击