sqlserver函数
发布时间:2020-12-12 13:25:36 所属栏目:MsSql教程 来源:网络整理
导读:--*********************************************************************************************--*********************************sqlserver函数大全*******************************************--***********************************************
--********************************************************************************************* --*********************************sqlserver函数大全******************************************* --********************************************************************************************* --ascii(字符串表达式) --返回最左侧的ASCII码值 select ASCII('AB') as ascii --返回65 --char(整数表达式) --ASCII 码转换为字符 select CHAR(65) as char --返回A --charindex(字符串表达式 1,字符串表达式2[,整数表达式]) --查找字符串匹配位置号 select CHARINDEX('a','gdsahhfah') --返回4 select 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',4) --返回bcde --replace(字符串表达式 1,字符串表达式 2,字符串表达式 3) --返回替换字符串 select REPLACE('abcdefbc','bc','BC') --返回aBCdefBC --dateadd(日期部分,数字,日期) --返回给指定日期加上一个时间间隔后的新的日期值 select DATEADD(YEAR,'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') --返回 12 select DATENAME(dw,'2016-9-6') --返回星期二 select DATENAME(WK,'2016-9-6') --返回37 select 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,不是返回 0 select ISNUMERIC('g') --返回0 select ISNUMERIC('113') --返回1 --isnull(任意表达式 1,任意表达式 2) --1 不为 NULL,则返回它的值;否则,在将任意表达式2 的类型转换为任意表达式1的类型(如果这两个类型不同)后,返回任意表式2 的值。 select ISNULL(null,'234g') --返回234g select ISNULL('gsgd','33333') --返回gsgd --isdate(任意表达式) --确定输入表达式是否为有效日期或可转成有效的日期。是返回1,不是返回 0 select ISDATE('gggs') --返回0 select ISDATE('2019-5-8') --返回1 --排名函数的常用使用格式:函数名() over (order by 列名 [asc|desc][,列名……]) --********************************************************************************************************************** --row_number无参数,需与over一起用 --为结果集内每一行进行编号,从1开始后面行依次加 1 select empId,empName,Salary,row_number() over(order by Salary desc) as rank from Tab_Salary --返回1,4的排名 --rank无参数 --如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名不连续。例如,如果有价格最高的两种产品的价格相同,它们将列第一。 --由于已有两行排名在前,所以具有下一个最高价格的产品将排名第三。该排名等于该行之前的所有行数加一。因此,RANK 函数并不总返回连续整数。 select empId,rank() over(order by Salary desc) as rank from Tab_Salary --返回1,1,4的排名 --dense_rank无参数 --如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名连续。 --例如,如果有价格最高的两种产品的价格相同,它们将并列第一,下一个最高价格的产品将排名第二。 --因此,DENSE_RANK 函数返回的数字没有间断,并且始终具有连续的排名 select empId,dense_rank() over(order by Salary desc) as rank from Tab_Salary --返回1,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_Salary select 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://www.voidcn.com/article/p-nvxemrim-xp.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |