sqlserver函数

来源:互联网 发布:淘宝集市店 编辑:程序博客网 时间:2024/05/21 08:50
  1. --*********************************************************************************************  
  2. --*********************************sqlserver函数大全*******************************************  
  3. --*********************************************************************************************  
  4.   
  5. --ascii(字符串表达式)  
  6. --返回最左侧的ASCII码值  
  7. select ASCII('AB'as ascii   --返回65  
  8.   
  9. --char(整数表达式)  
  10. --ASCII 码转换为字符  
  11. select CHAR(65) as char   --返回A  
  12.   
  13. --charindex(字符串表达式 1, 字符串表达式2[,整数表达式])  
  14. --查找字符串匹配位置号  
  15. select CHARINDEX('a','gdsahhfah')   --返回4  
  16. select CHARINDEX('a','gdsahhfah',5) --返回8  
  17.   
  18. --difference(字符串表达式 1,字符串表达式 2)  
  19. --返回一个0 到 4 的整数值,指示两个字符表达式的之间的相似程度  
  20. --0 表示几乎不同或完全不同,  
  21. --4 表示几乎相同或完全相同。  
  22. select DIFFERENCE('aa','bb')  
  23. select DIFFERENCE('eceeaag','ab')  
  24.   
  25. --left(字符串表达式,整数表达式)  
  26. --返回字符串中从左边开始指定个数的字符  
  27. select LEFT('sbcaaabc',4)    --返回sbca  
  28.   
  29. --right(字符串表达式,整数表达式)  
  30. --返回字符串中从右边开始指定个数的字符  
  31. select RIGHT('gdacdf',3)    --返回cdf  
  32.   
  33. --len(字符串表达式)  
  34. --返回指定字符串表达式的字符数,其中不包含尾随空格  
  35. select LEN(' a bcdef  ')    --返回8  
  36.   
  37. --lower(字符串表达式)  
  38. --返回大写字符数据转换为小写的字符表达式  
  39. select LOWER('AAAA')    --返回aaaa  
  40.   
  41. --upper(字符串表达式)  
  42. --返回小写字符数据转换为大写的字符表达式  
  43. select UPPER('aaaa')    --返回AAAA  
  44.   
  45. --ltrim(字符串表达式)  
  46. --返回删除了前导空格之后的字符表达式  
  47. select LTRIM('   abc')  --返回abc  
  48.   
  49. --rtrim(字符串表达式)  
  50. --返回删除了尾随空格之后的字符表达式  
  51. select RTRIM('abc   ')  --返回abc  
  52.   
  53. --reverse(字符串表达式)  
  54. --返回指定字符串反转后的新字符串  
  55. select REVERSE('12345'--返回54321  
  56.   
  57. --space(整数表达式)  
  58. --返回由指定数目的空格组成的字符串  
  59. select '123'+SPACE('2')+'b'  
  60.   
  61. --str(float 型小数[,总长度[,小数点后保留的位数]])  
  62. --返回由数字转换成的字符串。返回字符数不到总长度的前面补空格,超过总长度的截断小数位。如果需要截断整数位则返回**  
  63. --注意在截断时遵循四舍五入总长度。它包括小数点、符号、数字以及空格。默认值为10  
  64. --小数点后最多保留16 位。默认不保留小数点后面的数字  
  65. select STR('123.567',10,3)   --返回'   123.567'  
  66.   
  67. --stuff(字符串表达式 1,开始位置,长度,字符串表达式 2)  
  68. --在指定的开始位置删除指定长度的字符,并在指定的开始位置处插入字符串表达式  
  69. select STUFF('abcdef',3,2,'ABC')  --返回abABCef  
  70.   
  71. --substring(字符串表达式,开始位置,长度)  
  72. --返回截取的字符串  
  73. select SUBSTRING('abcdef',2,4)  --返回bcde  
  74.   
  75. --replace(字符串表达式 1,字符串表达式 2,字符串表达式 3)  
  76. --返回替换字符串  
  77. select REPLACE('abcdefbc','bc','BC')  --返回aBCdefBC  
  78.   
  79. --dateadd(日期部分,数字,日期)  
  80. --返回给指定日期加上一个时间间隔后的新的日期值  
  81. select DATEADD(YEAR,10,'2000-9-9')   --返回2010-09-09 00:00:00  
  82.   
  83. --datediff(日期部分,开始日期,结束日期)  
  84. --返回两个指定日期的指定日期部分的差的整数值,在计算时由结束日期减去开始日期  
  85. select DATEDIFF(YEAR,'2000-9-9','2010-9-9')  --返回10  
  86.   
  87. --datename(日期部分,日期)  
  88. --返回表示指定日期的指定日期部分的字符串  
  89. --dw 表示一星期中星期几,wk 表示一年中的第几个星期,dy 表示一年中的第几天  
  90. select datename(mm,'2007-12-11')   --返回 12  
  91. select DATENAME(dw,'2016-9-6')   --返回星期二  
  92. select DATENAME(WK,'2016-9-6')   --返回37  
  93. select DATENAME(DY,'2016-9-6')   --返回250  
  94.   
  95. --datepart(日期部分,日期)  
  96. --返回表示指定日期的指定日期部分的整数  
  97. select DATEPART(YEAR,'2016-9-6')  --返回2016  
  98.   
  99. --getdate()  
  100. --返回当前系统日期和时间  
  101. select GETDATE()   --返回2016-09-06 11:30:52  
  102.   
  103. --返回表示当前的UTC(世界标准时间)时间。即格林尼治时间  
  104. select getutcdate()  
  105.   
  106. --rand([整数表达式])  
  107. --随机数  
  108. select RAND()  
  109.   
  110. --round(数值表达式[,长度[,操作方式]])  
  111. --返回一个数值,舍入到指定的长度。注意返回的数值和原数值  
  112. select ROUND(1235.4674,1)  --返回1235.5000  
  113.   
  114. --convert(数据类型[(长度)],表达式[,样式])  
  115. --返回年龄:23(注意:如果想要在结果中正确显示中文需要在给定的字符串前面加上 N,加 N 是为了使数据库识别Unicode 字符)  
  116. select N'年龄:'+convert(nvarchar,23)   
  117. select convert(nvarchar ,getdate())  --返回'09  6 2016 11:40AM'  
  118.   
  119. --cast(表达式 as 数据类型[(长度)])  
  120. --将一种数据类型的表达式显式转换为另一种数据类型的表达式  
  121. select cast(123 as nvarchar)       --返回 123  
  122.   
  123. --newid()  
  124. --返回一个GUID(全局唯一表示符)值  
  125. select NEWID() as GUID  
  126.   
  127. --isnumeric(任意表达式)  
  128. --判断表达式是否为数值类型或者是否可以转换成数值。是返回1,不是返回 0  
  129. select ISNUMERIC('g')    --返回0  
  130. select ISNUMERIC('113')  --返回1  
  131.   
  132. --isnull(任意表达式 1,任意表达式 2)  
  133. --1 不为 NULL,则返回它的值;否则,在将任意表达式2 的类型转换为任意表达式1的类型(如果这两个类型不同)后,返回任意表式2 的值。  
  134. select ISNULL(null,'234g')     --返回234g  
  135. select ISNULL('gsgd','33333')  --返回gsgd  
  136.   
  137. --isdate(任意表达式)  
  138. --确定输入表达式是否为有效日期或可转成有效的日期。是返回1,不是返回 0  
  139. select ISDATE('gggs')       --返回0  
  140. select ISDATE('2019-5-8')   --返回1  
  141.   
  142.   
  143. --排名函数的常用使用格式:函数名() over (order by 列名 [asc|desc][,列名……])  
  144. --**********************************************************************************************************************  
  145. --row_number无参数,需与over一起用  
  146. --为结果集内每一行进行编号,从1开始后面行依次加 1  
  147. select empId,empName,Salary,row_number() over(order by Salary descas rank from Tab_Salary   --返回1,2,3,4的排名  
  148.   
  149. --rank无参数  
  150. --如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名不连续。例如,如果有价格最高的两种产品的价格相同,它们将列第一。  
  151. --由于已有两行排名在前,所以具有下一个最高价格的产品将排名第三。该排名等于该行之前的所有行数加一。因此,RANK 函数并不总返回连续整数。  
  152. select empId,empName,Salary,rank() over(order by Salary descas rank from Tab_Salary     --返回1,1,3,4的排名  
  153.   
  154. --dense_rank无参数  
  155. --如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名连续。  
  156. --例如,如果有价格最高的两种产品的价格相同,它们将并列第一,下一个最高价格的产品将排名第二。  
  157. --因此,DENSE_RANK 函数返回的数字没有间断,并且始终具有连续的排名  
  158. select empId,empName,Salary,dense_rank() over(order by Salary descas rank from Tab_Salary   --返回1,1,2,3  
  159. --**********************************************************************************************************************  
  160.   
  161.   
  162. --聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。  
  163. --聚合函数的常用使用格式:函数名([all|distinct] 表达式)  
  164. --all:默认值,对所有的值进行聚合函数运算包含重复值。  
  165. --distinct: 消除重复值后进行聚合函数运算  
  166. --**********************************************************************************************************************  
  167. --avg(n)  
  168. --返回组中各值的平均值。空值将被忽略。 表达式为数值表达式  
  169. select AVG(Salary) from Tab_Salary  
  170.   
  171. --count(n)  
  172. --返回组中的项数。COUNT(*) 返回组中的项数。包括 NULL 值和重复项。如果指定表达式则忽略空值。表达式为任意表达式  
  173. select COUNT(*) from Tab_Salary  
  174. select COUNT(distinct Salary) from Tab_Salary  --消除重复后的个数  
  175.   
  176. --min(n)  
  177. --返回组中的最小值。空值将被忽略。表达式为数值表达式,字符串表达式,日期  
  178. select min(Salary) from Tab_Salary  
  179.   
  180. --max(n)  
  181. --返回组中的最大值。空值将被忽略。表达式为数值表达式,字符串表达式,日期  
  182. select max(Salary) from Tab_Salary  
  183.   
  184. --sum  
  185. --返回组中所有值的和。空值将被忽略。表达式为数值表达式  
  186. select sum(Salary) from Tab_Salary  


参考博客:http://blog.csdn.net/wanlong360599336/article/details/52450146

原创粉丝点击