tsql-functions
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseT-SQL Functions Reference
T-SQL函数参考
Complete reference for all T-SQL function categories with version-specific availability.
包含所有T-SQL函数分类及对应版本可用性的完整参考手册。
Quick Reference
快速参考
String Functions
字符串函数
| Function | Description | Version |
|---|---|---|
| NULL-safe concatenation | 2012+ |
| Concatenate with separator | 2017+ |
| Aggregate strings | 2017+ |
| Split to rows | 2016+ |
| With ordinal column | 2022+ |
| Remove leading/trailing | 2017+ |
| Character replacement | 2017+ |
| .NET format strings | 2012+ |
| 函数 | 说明 | 版本 |
|---|---|---|
| 支持NULL安全的字符串拼接 | 2012+ |
| 使用分隔符拼接字符串 | 2017+ |
| 字符串聚合 | 2017+ |
| 将字符串拆分为行 | 2016+ |
| 拆分后包含序号列 | 2022+ |
| 移除首尾字符 | 2017+ |
| 字符替换 | 2017+ |
| .NET格式字符串支持 | 2012+ |
Date/Time Functions
日期/时间函数
| Function | Description | Version |
|---|---|---|
| Add interval | All |
| Difference (int) | All |
| Difference (bigint) | 2016+ |
| Last day of month | 2012+ |
| Truncate to precision | 2022+ |
| Group into buckets | 2022+ |
| Timezone conversion | 2016+ |
| 函数 | 说明 | 版本 |
|---|---|---|
| 添加时间间隔 | 所有版本 |
| 计算时间差(整数) | 所有版本 |
| 计算时间差(大整数) | 2016+ |
| 获取当月最后一天 | 2012+ |
| 截断日期至指定精度 | 2022+ |
| 按时间桶分组 | 2022+ |
| 时区转换 | 2016+ |
Window Functions
窗口函数
| Function | Description | Version |
|---|---|---|
| Sequential unique numbers | 2005+ |
| Rank with gaps for ties | 2005+ |
| Rank without gaps | 2005+ |
| Distribute into n groups | 2005+ |
| Previous row value | 2012+ |
| Next row value | 2012+ |
| First in window | 2012+ |
| Last in window | 2012+ |
| Skip NULLs in offset funcs | 2022+ |
| 函数 | 说明 | 版本 |
|---|---|---|
| 生成连续唯一编号 | 2005+ |
| 带间隔的排名(相同值排名相同,后续排名跳过) | 2005+ |
| 无间隔的排名(相同值排名相同,后续排名连续) | 2005+ |
| 将数据分配至n个分组 | 2005+ |
| 获取前n行的值 | 2012+ |
| 获取后n行的值 | 2012+ |
| 获取窗口内的第一个值 | 2012+ |
| 获取窗口内的最后一个值 | 2012+ |
| 在偏移函数中跳过NULL值 | 2022+ |
SQL Server 2022 New Functions
SQL Server 2022新增函数
| Function | Description |
|---|---|
| Maximum of values |
| Minimum of values |
| Truncate date |
| Number sequence |
| Create JSON object |
| Create JSON array |
| Check path exists |
| NULL-safe comparison |
| 函数 | 说明 |
|---|---|
| 获取多个值中的最大值 |
| 获取多个值中的最小值 |
| 截断日期 |
| 生成数字序列 |
| 创建JSON对象 |
| 创建JSON数组 |
| 检查JSON路径是否存在 |
| 支持NULL安全的比较 |
Core Patterns
核心使用模式
String Manipulation
字符串操作
sql
-- Concatenate with separator (NULL-safe)
SELECT CONCAT_WS(', ', FirstName, MiddleName, LastName) AS FullName
-- Split string to rows with ordinal
SELECT value, ordinal
FROM STRING_SPLIT('apple,banana,cherry', ',', 1)
-- Aggregate strings with ordering
SELECT DeptID,
STRING_AGG(EmployeeName, ', ') WITHIN GROUP (ORDER BY HireDate)
FROM Employees
GROUP BY DeptIDsql
-- 使用分隔符拼接字符串(支持NULL安全)
SELECT CONCAT_WS(', ', FirstName, MiddleName, LastName) AS FullName
-- 将字符串拆分为行并包含序号
SELECT value, ordinal
FROM STRING_SPLIT('apple,banana,cherry', ',', 1)
-- 带排序的字符串聚合
SELECT DeptID,
STRING_AGG(EmployeeName, ', ') WITHIN GROUP (ORDER BY HireDate)
FROM Employees
GROUP BY DeptIDDate Operations
日期操作
sql
-- Truncate to first of month
SELECT DATETRUNC(month, OrderDate) AS MonthStart
-- Group by week buckets
SELECT DATE_BUCKET(week, 1, OrderDate) AS WeekBucket,
COUNT(*) AS OrderCount
FROM Orders
GROUP BY DATE_BUCKET(week, 1, OrderDate)
-- Generate date series
SELECT CAST(value AS date) AS Date
FROM GENERATE_SERIES(
CAST('2024-01-01' AS date),
CAST('2024-12-31' AS date),
1
)sql
-- 截断日期至当月第一天
SELECT DATETRUNC(month, OrderDate) AS MonthStart
-- 按周桶分组统计
SELECT DATE_BUCKET(week, 1, OrderDate) AS WeekBucket,
COUNT(*) AS OrderCount
FROM Orders
GROUP BY DATE_BUCKET(week, 1, OrderDate)
-- 生成日期序列
SELECT CAST(value AS date) AS Date
FROM GENERATE_SERIES(
CAST('2024-01-01' AS date),
CAST('2024-12-31' AS date),
1
)Window Functions
窗口函数
sql
-- Running total with partitioning
SELECT OrderID, CustomerID, Amount,
SUM(Amount) OVER (
PARTITION BY CustomerID
ORDER BY OrderDate
ROWS UNBOUNDED PRECEDING
) AS RunningTotal
FROM Orders
-- Get previous non-NULL value (SQL 2022+)
SELECT Date, Value,
LAST_VALUE(Value) IGNORE NULLS OVER (
ORDER BY Date
ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
) AS PreviousNonNull
FROM Measurementssql
-- 按客户分组的累计求和
SELECT OrderID, CustomerID, Amount,
SUM(Amount) OVER (
PARTITION BY CustomerID
ORDER BY OrderDate
ROWS UNBOUNDED PRECEDING
) AS RunningTotal
FROM Orders
-- 获取前一个非NULL值(SQL 2022+)
SELECT Date, Value,
LAST_VALUE(Value) IGNORE NULLS OVER (
ORDER BY Date
ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
) AS PreviousNonNull
FROM MeasurementsJSON Operations
JSON操作
sql
-- Extract scalar value
SELECT JSON_VALUE(JsonColumn, '$.customer.name') AS CustomerName
-- Parse JSON array to rows
SELECT j.ProductID, j.Quantity
FROM Orders
CROSS APPLY OPENJSON(OrderDetails)
WITH (
ProductID INT '$.productId',
Quantity INT '$.qty'
) AS j
-- Build JSON object (SQL 2022+)
SELECT JSON_OBJECT('id': CustomerID, 'name': CustomerName) AS CustomerJson
FROM Customerssql
-- 提取标量值
SELECT JSON_VALUE(JsonColumn, '$.customer.name') AS CustomerName
-- 解析JSON数组为行
SELECT j.ProductID, j.Quantity
FROM Orders
CROSS APPLY OPENJSON(OrderDetails)
WITH (
ProductID INT '$.productId',
Quantity INT '$.qty'
) AS j
-- 构建JSON对象(SQL 2022+)
SELECT JSON_OBJECT('id': CustomerID, 'name': CustomerName) AS CustomerJson
FROM CustomersAdditional References
更多参考资料
For deeper coverage of specific function categories, see:
- - Complete string function reference with examples
references/string-functions.md - - Window and ranking functions with frame specifications
references/window-functions.md
如需深入了解特定函数分类,请查看:
- - 包含示例的完整字符串函数参考
references/string-functions.md - - 包含框架规范的窗口和排名函数参考
references/window-functions.md