SQL Server函数大全:分类概览与快速使用示例

目录

引言

一、聚合函数

二、字符串函数

三、日期时间函数

四、数学函数

五、类型转换函数

六、逻辑与条件函数

七、系统与元数据函数

八、JSON与XML函数

九、窗口函数(需OVER子句)

十、安全函数

结语


引言

        SQL Server内置了数百个函数,覆盖数据计算、转换、分析等多种场景。本文作为速查手册,按功能分类整理常用函数及精简示例,助您快速定位工具。每个函数的详细解析将在后续专题文章中展开。


一、聚合函数

函数示例功能说明
SUM()SELECT SUM(Sales) FROM Orders;计算数值列总和
AVG()SELECT AVG(Salary) FROM Employees;计算平均值
COUNT()SELECT COUNT(*) FROM Users;统计行数
MIN()/MAX()SELECT MIN(Price), MAX(Price) FROM Products;找最小/最大值
STDEV()SELECT STDEV(Score) FROM Exams;计算标准差


二、字符串函数

函数示例功能说明
LEFT()/RIGHT()SELECT LEFT('SQLServer', 3); -- 'SQL'截取左/右侧字符串
SUBSTRING()SELECT SUBSTRING('Hello', 2, 3); -- 'ell'截取子串
LEN()SELECT LEN('Database'); -- 8计算字符串长度
REPLACE()SELECT REPLACE('a-b-c', '-', '/'); -- 'a/b/c'替换字符串
CHARINDEX()SELECT CHARINDEX('@', 'user@example.com'); -- 5查找子串位置


三、日期时间函数

函数示例功能说明
GETDATE()SELECT GETDATE(); -- 当前日期时间获取当前系统时间
DATEADD()SELECT DATEADD(MONTH, 1, '2024-01-01'); -- 2024-02-01日期加减
DATEDIFF()SELECT DATEDIFF(DAY, '2023-01-01', GETDATE());计算日期差
DATEPART()SELECT DATEPART(YEAR, GETDATE()); -- 2024提取日期部分
FORMAT()SELECT FORMAT(GETDATE(), 'yyyy-MM-dd');格式化日期


四、数学函数

函数示例功能说明
ROUND()SELECT ROUND(123.4567, 2); -- 123.46四舍五入
ABS()SELECT ABS(-15); -- 15绝对值计算
POWER()SELECT POWER(2, 3); -- 8幂运算
RAND()SELECT RAND(); -- 0~1随机数生成随机数
SQRT()SELECT SQRT(16); -- 4平方根


五、类型转换函数

函数示例功能说明
CAST()SELECT CAST(123 AS VARCHAR); -- '123'类型转换
CONVERT()SELECT CONVERT(VARCHAR, GETDATE(), 23); -- '2024-03-15'带格式转换
PARSE()SELECT PARSE('2024/03' AS DATE USING 'ja-JP');本地化解析
TRY_CAST()SELECT TRY_CAST('ABC' AS INT); -- NULL安全转换(失败返回NULL)


六、逻辑与条件函数

函数示例功能说明
IIF()SELECT IIF(Score >=60, '及格', '不及格');简单条件判断
CASE表达式SELECT CASE WHEN Age<18 THEN '未成年' ELSE '成年' END;多条件分支
COALESCE()SELECT COALESCE(NickName, RealName);返回第一个非NULL值
ISNULL()SELECT ISNULL(Phone, '未知');替换NULL值


七、系统与元数据函数

函数示例功能说明
DB_ID()SELECT DB_ID('master'); -- 1获取数据库ID
OBJECT_NAME()SELECT OBJECT_NAME(OBJECT_ID('Users')); -- 'Users'获取对象名称
HOST_NAME()SELECT HOST_NAME(); -- 计算机名获取主机名
IDENT_CURRENT()SELECT IDENT_CURRENT('Users');获取表当前标识值


八、JSON与XML函数

函数示例功能说明
JSON_VALUE()SELECT JSON_VALUE('{"name":"John"}', '$.name'); -- 'John'提取JSON值
OPENJSON()SELECT * FROM OPENJSON('{"age":30}');解析JSON为表格
XML_VALUE()SELECT XML_VALUE('<book>SQL</book>', '/book'); -- 'SQL'提取XML节点值


九、窗口函数(需OVER子句)

函数示例功能说明
ROW_NUMBER()SELECT ROW_NUMBER() OVER(ORDER BY Sales DESC);行号
LAG()/LEAD()SELECT LAG(Price) OVER(ORDER BY Date);访问前/后行数据
RANK()SELECT RANK() OVER(PARTITION BY Dept ORDER BY Salary);排名(允许并列)
NTILE()SELECT NTILE(4) OVER(ORDER BY Score);数据分桶


十、安全函数

函数示例功能说明
CURRENT_USERSELECT CURRENT_USER; -- 当前登录用户获取当前用户
HAS_PERMS_BY_NAME()SELECT HAS_PERMS_BY_NAME('Sales', 'SELECT'); -- 1/0权限检查
ENCRYPTBYPASSPHRASE()SELECT ENCRYPTBYPASSPHRASE('key', 'data');加密数据
HASHBYTES()SELECT HASHBYTES('SHA2_256', 'text');计算哈希值


结语

        本文列举了SQL Server中9大类常用函数的快速使用示例,可作为日常开发的速查手册。后续将针对每类函数发布详细解析文章,深入讲解参数配置、性能差异及实战陷阱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值