SQL Server中的常用函数汇总
前言 在SQL server中常用5类的函数:字符串函数,日期函数,数学函数,系统函数,聚合函数。 字符串函数 --常用的字符串函数 1.charindex() -- 字符索引 2.len() -- 长度 3.upper() -- 大写 4.Ltrim() -- 左裁减 5.Rtrim() -- 右裁减 6.Left() -- 左 7.Right() -- 右 8.stuff() -- 删除并添加 9.replace() -- 查找并替换 /* charindex() 用来查询指定字符串在另一个字符串中的起始位置 在SQL Server数据库管理系统中,函数是执行特定任务的预定义操作,它们可以帮助我们处理和操纵数据。本篇文章将深入探讨SQL Server中常见的五类函数:字符串函数、日期函数、数学函数、系统函数以及聚合函数。 ### 字符串函数 1. **`charindex()`**:这个函数用于查找一个子字符串在另一个字符串中的起始位置。它接受三个参数,分别是子字符串、主字符串和可选的起始位置。如果找不到子字符串,返回0。例如: ```sql SELECT charindex('sjdy', 'www.sjdy.com'); -- 返回 5 ``` 2. **`len()`**:计算字符串的长度,返回非空字符的数量。例如: ```sql SELECT len('www.baidu.com'); -- 返回 13 ``` 3. **`upper()`**:将字符串转换为大写。例如: ```sql SELECT upper('sql server课程'); -- 返回 'SQL SERVER课程' ``` 4. **`Ltrim()`** 和 **`Rtrim()`**:分别用于移除字符串左侧和右侧的空格。例如: ```sql SELECT Ltrim(' SQL'); -- 返回 'SQL' SELECT Rtrim('SQL '); -- 返回 'SQL' ``` 5. **`Left()`** 和 **`Right()`**:分别从字符串左侧和右侧截取指定数量的字符。例如: ```sql SELECT left('www.baidu.com', 3); -- 返回 'www' SELECT right('www.baidu.com', 3); -- 返回 'com' ``` 6. **`Stuff()`**:用于删除字符串中指定位置的一定数量的字符,并在相同位置插入新的字符串。例如: ```sql SELECT stuff('ABCDEF', 2, 3, '我和我的祖国'); -- 返回 'A我和我的祖国EF' ``` 7. **`Replace()`**:查找并替换字符串中的特定子字符串。例如: ```sql SELECT replace('我爱我的家乡', '家乡', '祖国'); -- 返回 '我爱我的祖国' ``` ### 日期函数 1. **`GetDate()`**:返回当前系统的日期和时间。例如: ```sql SELECT getdate(); -- 返回 当前系统时间 ``` 2. **`DateAdd()`**:在日期上增加指定的时间间隔。例如: ```sql SELECT dateAdd(mm, 4, '4/10/2020'); -- 返回 修改后的日期 ``` 3. **`DateDiff()`**:计算两个日期之间的差异(以指定的时间间隔单位)。例如: ```sql SELECT dateDiff(dy, '4/10/2020', '4/19/2020'); -- 返回 9 ``` 4. **`Datename()`**:返回日期的指定部分(如星期、月份等)作为文本。例如: ```sql SELECT datename(dw, '01/01/2020'); -- 返回 '星期三' ``` 5. **`DatePart()`**:返回日期的指定部分(如日、月等)作为整数。例如: ```sql SELECT datePart(day, '01-01-2020'); -- 返回 3 ``` ### 数学函数 1. **`Rand()`**:生成0到1之间的随机浮点数。例如: ```sql SELECT rand(); -- 返回 0~1之间的浮点数 ``` 2. **`Abs()`**:返回数字的绝对值。例如: ```sql SELECT abs(-123); -- 返回 123 ``` 3. **`Ceiling()`** 和 **`Floor()`**:分别用于向上和向下取整。例如: ```sql SELECT ceiling(12.5); -- 返回 13 SELECT floor(12.5); -- 返回 12 ``` 4. **`Power()`**:计算数值的幂。例如: ```sql SELECT power(4, 2); -- 返回 16 ``` 5. **`Round()`**:四舍五入到指定精度。例如: ```sql SELECT round(3.1415926, 2); -- 返回 3.14 ``` 6. **`Sign()`**:返回数字的符号(1为正,-1为负,0为零)。例如: ```sql SELECT sign(10); -- 返回 1 SELECT sign(-5); -- 返回 -1 SELECT sign(0); -- 返回 0 ``` 7. **`Sqrt()`**:返回数字的平方根。例如: ```sql SELECT sqrt(16); -- 返回 4 ``` ### 系统函数 系统函数主要用于获取与数据库系统有关的信息,如版本、用户信息等。例如,`@@ROWCOUNT`可以获取上一个操作影响的行数,`DB_NAME()`可以获取当前数据库名称。 ### 聚合函数 1. **`Count()`**:计算一组值的数量。 2. **`Sum()`**:计算一组值的总和。 3. **`Average()`** 或 **`Avg()`**:计算一组值的平均值。 4. **`Max()`** 和 **`Min()`**:找出一组值的最大值和最小值。 5. **`GroupBy()`** 和 **`Having()`**:通常与聚合函数一起使用,用于分组数据并根据条件筛选分组。 以上只是SQL Server中函数的一部分,实际上还有更多复杂的函数可用于更高级的数据处理和分析。掌握这些基本函数能极大地提升你在SQL Server中的数据处理能力。