重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
tsql-functions by josiahsiegel/claude-plugin-marketplace
npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill tsql-functions包含版本特定可用性的所有 T-SQL 函数类别完整参考。
| 函数 | 描述 | 版本 |
|---|---|---|
CONCAT(str1, str2, ...) | 空值安全的连接 | 2012+ |
CONCAT_WS(sep, str1, ...) | 使用分隔符连接 | 2017+ |
STRING_AGG(expr, sep) | 聚合字符串 | 2017+ |
STRING_SPLIT(str, sep) | 分割为行 |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 2016+ |
STRING_SPLIT(str, sep, 1) | 带序号列 | 2022+ |
TRIM([chars FROM] str) | 移除首尾字符 | 2017+ |
TRANSLATE(str, from, to) | 字符替换 | 2017+ |
FORMAT(value, format) | .NET 格式字符串 | 2012+ |
| 函数 | 描述 | 版本 |
|---|---|---|
DATEADD(part, n, date) | 添加时间间隔 | 所有 |
DATEDIFF(part, start, end) | 差值(整数) | 所有 |
DATEDIFF_BIG(part, s, e) | 差值(大整数) | 2016+ |
EOMONTH(date, [offset]) | 月份的最后一天 | 2012+ |
DATETRUNC(part, date) | 截断到指定精度 | 2022+ |
DATE_BUCKET(part, n, date) | 分组到桶中 | 2022+ |
AT TIME ZONE 'tz' | 时区转换 | 2016+ |
| 函数 | 描述 | 版本 |
|---|---|---|
ROW_NUMBER() | 顺序唯一编号 | 2005+ |
RANK() | 并列时留有空位的排名 | 2005+ |
DENSE_RANK() | 无空位的排名 | 2005+ |
NTILE(n) | 分配到 n 个组 | 2005+ |
LAG(col, n, default) | 前一行值 | 2012+ |
LEAD(col, n, default) | 后一行值 | 2012+ |
FIRST_VALUE(col) | 窗口中的第一个值 | 2012+ |
LAST_VALUE(col) | 窗口中的最后一个值 | 2012+ |
IGNORE NULLS | 在偏移函数中跳过空值 | 2022+ |
| 函数 | 描述 |
|---|---|
GREATEST(v1, v2, ...) | 最大值 |
LEAST(v1, v2, ...) | 最小值 |
DATETRUNC(part, date) | 截断日期 |
GENERATE_SERIES(start, stop, [step]) | 数字序列 |
JSON_OBJECT('key': val) | 创建 JSON 对象 |
JSON_ARRAY(v1, v2, ...) | 创建 JSON 数组 |
JSON_PATH_EXISTS(json, path) | 检查路径是否存在 |
IS [NOT] DISTINCT FROM | 空值安全的比较 |
-- 使用分隔符连接(空值安全)
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 DeptID
-- 截断到月份第一天
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
)
-- 带分区的累计总计
SELECT OrderID, CustomerID, Amount,
SUM(Amount) OVER (
PARTITION BY CustomerID
ORDER BY OrderDate
ROWS UNBOUNDED PRECEDING
) AS RunningTotal
FROM Orders
-- 获取前一个非空值(SQL 2022+)
SELECT Date, Value,
LAST_VALUE(Value) IGNORE NULLS OVER (
ORDER BY Date
ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
) AS PreviousNonNull
FROM Measurements
-- 提取标量值
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 Customers
如需深入了解特定函数类别,请参阅:
references/string-functions.md - 包含示例的完整字符串函数参考references/window-functions.md - 包含框架规范的窗口和排名函数每周安装量
64
代码仓库
GitHub 星标数
21
首次出现
2026年1月24日
安全审计
安装于
opencode50
gemini-cli48
codex47
claude-code46
cursor46
github-copilot41
Complete reference for all T-SQL function categories with version-specific availability.
| Function | Description | Version |
|---|---|---|
CONCAT(str1, str2, ...) | NULL-safe concatenation | 2012+ |
CONCAT_WS(sep, str1, ...) | Concatenate with separator | 2017+ |
STRING_AGG(expr, sep) | Aggregate strings | 2017+ |
STRING_SPLIT(str, sep) | Split to rows | 2016+ |
STRING_SPLIT(str, sep, 1) | With ordinal column | 2022+ |
TRIM([chars FROM] str) | Remove leading/trailing | 2017+ |
TRANSLATE(str, from, to) | Character replacement | 2017+ |
FORMAT(value, format) | .NET format strings | 2012+ |
| Function | Description | Version |
|---|---|---|
DATEADD(part, n, date) | Add interval | All |
DATEDIFF(part, start, end) | Difference (int) | All |
DATEDIFF_BIG(part, s, e) | Difference (bigint) | 2016+ |
EOMONTH(date, [offset]) | Last day of month | 2012+ |
DATETRUNC(part, date) | Truncate to precision |
| Function | Description | Version |
|---|---|---|
ROW_NUMBER() | Sequential unique numbers | 2005+ |
RANK() | Rank with gaps for ties | 2005+ |
DENSE_RANK() | Rank without gaps | 2005+ |
NTILE(n) | Distribute into n groups | 2005+ |
LAG(col, n, default) | Previous row value | 2012+ |
| Function | Description |
|---|---|
GREATEST(v1, v2, ...) | Maximum of values |
LEAST(v1, v2, ...) | Minimum of values |
DATETRUNC(part, date) | Truncate date |
GENERATE_SERIES(start, stop, [step]) | Number sequence |
JSON_OBJECT('key': val) | Create JSON object |
JSON_ARRAY(v1, v2, ...) |
-- 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 DeptID
-- 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
)
-- 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 Measurements
-- 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 Customers
For deeper coverage of specific function categories, see:
references/string-functions.md - Complete string function reference with examplesreferences/window-functions.md - Window and ranking functions with frame specificationsWeekly Installs
64
Repository
GitHub Stars
21
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode50
gemini-cli48
codex47
claude-code46
cursor46
github-copilot41
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
125,600 周安装
| 2022+ |
DATE_BUCKET(part, n, date) | Group into buckets | 2022+ |
AT TIME ZONE 'tz' | Timezone conversion | 2016+ |
LEAD(col, n, default) | Next row value | 2012+ |
FIRST_VALUE(col) | First in window | 2012+ |
LAST_VALUE(col) | Last in window | 2012+ |
IGNORE NULLS | Skip NULLs in offset funcs | 2022+ |
| Create JSON array |
JSON_PATH_EXISTS(json, path) | Check path exists |
IS [NOT] DISTINCT FROM | NULL-safe comparison |