帮助中心 >  产品文档 >  SQL Server 常用函数总结详解

欢迎来到蓝队云小课堂。SQL Server 是一个功能强大的关系数据库管理系统,它提供了许多内置函数来简化数据处理任务。这些函数涵盖了从字符串操作到日期时间处理的各个方面。本文将详细介绍 SQL Server 中的一些常用函数,并提供实际应用示例。

 

字符串函数

字符串函数用于处理和操作字符串数据。这些函数可以帮助你执行各种任务,如计算字符串长度、转换大小写、去除空格、截取子字符串、替换字符串等。

 

len()

len() 函数用于计算字符串的长度。它返回字符串中的字符数,不包括尾随空格。

SELECT LEN(name) FROM test1;  -- 计算 name 列的长度

 

大小写转换

lower() 和 upper() 函数用于将字符串转换为小写或大写。

SELECT LOWER('STUDENT!');

SELECT UPPER('student!');

 

去空

ltrim() 和 rtrim() 函数用于去除字符串左侧或右侧的空格。

DECLARE @str VARCHAR(100) = ' a a a ';

SELECT LTRIM(@str);  -- 去除左侧空格

SELECT RTRIM(@str);  -- 去除右侧空格

 

字符串截取

substring()、left() 和 right() 函数用于截取字符串的子部分。

SELECT SUBSTRING('HelloWorld!', 6, 5);  -- 截取从第6个字符开始的5个字符

SELECT LEFT('HelloWorld!', 5);  -- 从左开始截取5个字符

SELECT RIGHT('HelloWorld!', 5);  -- 从右开始截取5个字符

 

字符串替换

replace() 函数用于替换字符串中的特定字符。

SELECT REPLACE('HelloWorld!', 'o', 'e');  -- 将 'o' 替换为 'e'

 

字符串反转

reverse() 函数用于反转字符串的顺序。

SELECT REVERSE('abc');  -- 结果为 'cba'

 

字符串位置

charindex() 函数用于查找一个字符串在另一个字符串中的位置。

SELECT CHARINDEX('H', 'elloHWorld');  -- 结果为 5,表示 'H' 在字符串中的位置

 

字符串重复

replicate() 函数用于重复字符串指定的次数。

SELECT REPLICATE('abc', 4);  -- 结果为 'abcabcabcabc'

 

 

 

聚合函数

聚合函数用于对一组值进行计算,并返回单个值。这些函数通常用于统计分析,如计算平均值、最小值、最大值、求和和计数。

 

平均值 avg()

avg() 函数用于计算一组数值的平均值。

SELECT AVG(id) FROM test1;  -- 计算 id 列的平均值

 

最小值 min() 和最大值 max()

min() 和 max() 函数用于找出一组值中的最小值和最大值。

SELECT MIN(id) FROM test1;  -- 找出 id 列的最小值

SELECT MAX(id) FROM test1;  -- 找出 id 列的最大值

 

求和 sum()

sum() 函数用于计算一组数值的总和。

SELECT SUM(id) FROM test1;  -- 计算 id 列的总和

 

计算总数 count()

count() 函数用于计算一组值的数量。

SELECT COUNT(id) FROM test1;  -- 计算 id 列的项数

 

分组统计

使用 GROUP BY 子句可以对数据进行分组统计。

SELECT stu_id AS 学生编号, name AS 学生姓名, SUM(语文 + 英语 + 数学 + 代数) AS 总分

FROM tb_stuAchievement

GROUP BY stu_id, name

ORDER BY 总分 DESC;  -- 按总分降序排列

 

 

日期和时间函数

日期和时间函数用于处理日期和时间数据。这些函数可以帮助你获取当前日期和时间、执行日期运算等。

 

获取当前日期 GetDate

getdate() 函数用于获取当前的系统日期和时间。

SELECT GETDATE();  -- 获取当前日期和时间

 

获取 UTC 时间 GetUTCDate

getutcdate() 函数用于获取当前的 UTC 日期和时间。

SELECT GETUTCDATE();  -- 获取当前 UTC 日期和时间

 

单独获取年月日

可以使用 year()、month() 和 day() 函数分别获取日期的年、月、日部分。

SELECT YEAR(GETDATE());  -- 获取当前年份

SELECT MONTH(GETDATE());  -- 获取当前月份

SELECT DAY(GETDATE());  -- 获取当前日期

 

日期减法 DATEDIFF

datediff() 函数用于计算两个日期之间的差异。

SELECT DATEDIFF(YYYY, '2011-11-11', '2012-12-12');  -- 输出年份差 1

SELECT DATEDIFF(DAY, '2011-11-11', '2012-12-12');  -- 输出天数差 397

 

SQL Server 2008 中新增的日期时间型函数

SQL Server 2008 引入了一些新的日期时间函数,以提供更精确的时间处理。

 

1.SysDateTime():获取系统时间。

2.SysDateTimeOffset:获取当前日期和时间及其时区偏移量。

3.SysUTCDateTime:获取系统 UTC 时间。

4.Current_TimeStamp:获取当前数据库系统时间戳。

5.isDate:判断是否为日期数据。

SELECT ISDATE('2012-12-12');  -- 输出 1,表示是日期

SELECT ISDATE('xxxx-12-12');  -- 输出 0,表示不是日期

 

 

其他函数

MID()

MID() 函数用于从文本字段中提取字符。

SELECT MID(City, 1, 3) AS SmallCity FROM Persons;

 

ROUND()

ROUND() 函数用于将数值字段舍入为指定的小数位数。

SELECT ROUND(column_name, decimals) FROM table_name;

 

NOW()

NOW() 函数返回当前的日期和时间。

SELECT NOW() FROM table_name;

 

FORMAT()

FORMAT() 函数用于对字段的显示进行格式化。

SELECT FORMAT(stu_intime, 'yyyy-MM-dd hh:mm:ss') AS intime FROM stu;

 

SELECT INTO

SELECT INTO 语句用于从一个表中选取数据,然后将数据插入另一个表中。

SELECT stu_name, stu_id INTO stu1 FROM stu;  -- 将 stu 表中的 stu_id 和 stu_name 插入新表 stu1

 

通过这些函数的应用,SQL Server 提供了强大的数据处理能力,使得数据库操作更加高效和灵活。希望本文能帮助你更好地理解和应用 SQL Server 中的常用函数。

 

蓝队云官网上拥有完善的技术支持库,你可以在这里找到更多的帮助和资源。如果你有任何技术问题,也欢迎直接咨询我们。同时,蓝队云还整理了运维必备的工具包,免费分享给大家使用,需要的朋友可以直接咨询。

 

更多技术知识,蓝队云期待与你一起探索。让我们一起在技术的海洋中航行,发现更多的秘密和宝藏。

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: