当前位置: 首页 > news >正文

SQL Server 常用函数

一、字符串处理函数

1. CONCAT:拼接字符串

语法CONCAT(string1, string2, ..., stringN)
实例

SELECT CONCAT('Hello', ' ', 'World') AS Result;
 

输出

Result
-------------
Hello World
 

2. SUBSTRING:截取子字符串

语法SUBSTRING(string, start, length)
实例

SELECT SUBSTRING('SQL Server', 5, 6) AS Result;
 

输出

Result
-------
Server
 

3. CHARINDEX:查找子字符串位置

语法CHARINDEX(substring, string, [start])
实例

SELECT CHARINDEX('@', 'user@example.com') AS Position;
 

输出

Position
---------
5
 

4. REPLACE:替换字符串内容

语法REPLACE(input_string, old_substring, new_substring)
实例

SELECT REPLACE('2023-01-01', '-', '/') AS FormattedDate;
 

输出

FormattedDate
-------------
2023/01/01
 

二、数值计算函数

1. ROUND:四舍五入

语法ROUND(number, decimal_places)
实例

SELECT ROUND(123.4567, 2) AS RoundedValue;
 

输出

RoundedValue
------------
123.4600
 

2. ABS:取绝对值

语法ABS(numeric_expression)
实例

SELECT ABS(-15.5) AS AbsoluteValue;
 

输出

AbsoluteValue
-------------
15.5
 

3. RAND:生成随机数

语法RAND([seed])
实例

SELECT RAND() AS RandomValue; -- 0~1 之间的随机数
 

输出(示例):

RandomValue
-----------
0.715436
 

三、日期与时间函数

1. GETDATE:获取当前日期时间

语法GETDATE()
实例

SELECT GETDATE() AS CurrentDateTime;
 

输出(示例):

CurrentDateTime
---------------------
2023-10-05 14:30:45
 

2. DATEDIFF:计算日期差值

语法DATEDIFF(datepart, startdate, enddate)
实例

SELECT DATEDIFF(DAY, '2023-01-01', '2023-10-05') AS DaysDiff;
 

输出

DaysDiff
--------
277
 

3. DATEADD:日期加减

语法DATEADD(datepart, number, date)
实例

SELECT DATEADD(MONTH, 3, '2023-10-05') AS NewDate;
 

输出

NewDate
---------
2024-01-05
 

四、逻辑与条件函数

1. CASE:条件分支

语法

CASE WHEN condition1 THEN result1WHEN condition2 THEN result2ELSE default_result
END
 

实例

SELECT ProductName,CASE WHEN Price > 100 THEN 'High'WHEN Price > 50 THEN 'Medium'ELSE 'Low'END AS PriceCategory
FROM Products;
 

输出(示例):

ProductName   PriceCategory
---------------------------
Laptop        High
Mouse         Low
Monitor       Medium
 

2. COALESCE:返回第一个非 NULL 值

语法COALESCE(expression1, expression2, ..., expressionN)
实例

SELECT COALESCE(NULL, 'Fallback Value', 'Another Value') AS Result;
 

输出

Result
-------------
Fallback Value
 

3. IIF:简化条件判断

语法IIF(condition, true_value, false_value)
实例

SELECT IIF(10 > 5, 'Yes', 'No') AS Result;
 

输出

Result
------
Yes
 

五、聚合与窗口函数

1. SUM:求和

语法SUM(column)
实例

SELECT SUM(SalesAmount) AS TotalSales 
FROM Sales;
 

输出(示例):

TotalSales
----------
120000.00
 

2. ROW_NUMBER:生成行号

语法

ROW_NUMBER() OVER (ORDER BY column)
 

实例

SELECT ProductID,ProductName,ROW_NUMBER() OVER (ORDER BY Price DESC) AS Rank
FROM Products;
 

输出(示例):

ProductID   ProductName   Rank
-----------------------------
101         Laptop        1
103         Monitor       2
102         Mouse         3
 

3. STRING_AGG:分组拼接字符串

语法STRING_AGG(expression, separator) [WITHIN GROUP (ORDER BY column)]
实例

SELECT DepartmentID,STRING_AGG(EmployeeName, ', ') AS Employees
FROM Employees
GROUP BY DepartmentID;
 

输出(示例):

DepartmentID   Employees
------------------------
1              Alice, Bob
2              Charlie, David
 

六、系统与元数据函数

1. DB_NAME:获取当前数据库名

语法DB_NAME()
实例

SELECT DB_NAME() AS CurrentDatabase;
 

输出

CurrentDatabase
---------------
AdventureWorks
 

2. OBJECT_ID:获取对象 ID

语法OBJECT_ID('object_name')
实例

SELECT OBJECT_ID('dbo.Products') AS TableObjectID;
 

输出(示例):

TableObjectID
-------------
123456789
 

七、JSON 处理函数(SQL Server 2016+)

1. JSON_VALUE:提取 JSON 值

语法JSON_VALUE(json_string, '$.path')
实例

DECLARE @json NVARCHAR(MAX) = '{"name": "Alice", "age": 30}';
SELECT JSON_VALUE(@json, '$.name') AS Name;
 

输出

Name
-----
Alice
 

2. JSON_MODIFY:修改 JSON 内容

语法JSON_MODIFY(json_string, '$.path', new_value)
实例

DECLARE @json NVARCHAR(MAX) = '{"name": "Alice"}';
SELECT JSON_MODIFY(@json, '$.age', 30) AS UpdatedJSON;
 

输出

UpdatedJSON
------------------------
{"name": "Alice", "age": 30}
http://www.xdnf.cn/news/502435.html

相关文章:

  • QT使用QXlsx读取excel表格中的图片
  • 【自然语言处理与大模型】大模型(LLM)基础知识④
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(23):受身形
  • mAP、AP50、AR50:目标检测中的核心评价指标解析
  • 开源项目实战学习之YOLO11:12.2 ultralytics-models-sam-decoders.py源码分析
  • Vue百日学习计划Day19-20天详细计划-Gemini版
  • 密文搜索-map容器+substr
  • javaDoc
  • 电子电器架构 --- 整车造车阶段四个重要节点
  • Java卡与SSE技术融合实现企业级安全实时通讯
  • 提示词写的好,也可以生成EXE
  • MySQL多条件查询深度解析
  • Qt做的应用程序无法彻底关闭的问题解析
  • MySQL 查询执行流程全解析
  • IPD推行成功的核心要素(二十二)IPD流程持续优化性地推出具备商业成功潜力的产品与解决方案
  • 使用HtmlAgilityPack采集墨迹天气中的天气数据
  • 9.DMA
  • 如果丝杆有轴向窜动应如何处理?
  • 西门子 Teamcenter13 Eclipse RCP 开发 1.3 工具栏 单选按钮
  • 使用tensorRT10部署低光照补偿模型
  • 六、绘制图片
  • traceroute命令: -g与-i 参数
  • flutter长列表 ListView、GridView、SingleChildScrollView、CustomScrollView区别
  • 专题四:综合练习(组合问题的决策树与回溯算法)
  • 嘉立创EDA成图:文件管理
  • 【前端基础】11、CSS的属性特性(继承、层叠、元素类型、隐藏元素的四种方式)
  • 【笔记】正弦交流电路的特征量
  • MMDetection环境安装配置
  • 小蜗牛拨号助手用户使用手册
  • STM32中的DMA