tsql-functions

tsql-functions

Complete T-SQL function reference for SQL Server and Azure SQL Database. Use this skill when: (1) User asks about T-SQL string, date, math, or conversion functions, (2) User needs help with window/ranking functions, (3) User works with JSON or XML in T-SQL, (4) User asks about aggregate functions or GROUP BY, (5) User needs system or metadata functions.

7estrelas
1forks
Atualizado 1/17/2026
SKILL.md
readonlyread-only
name
tsql-functions
description

|

T-SQL Functions Reference

Complete reference for all T-SQL function categories with version-specific availability.

Quick Reference

String Functions

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+

Date/Time Functions

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 2022+
DATE_BUCKET(part, n, date) Group into buckets 2022+
AT TIME ZONE 'tz' Timezone conversion 2016+

Window Functions

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+
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+

SQL Server 2022 New Functions

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, ...) Create JSON array
JSON_PATH_EXISTS(json, path) Check path exists
IS [NOT] DISTINCT FROM NULL-safe comparison

Core Patterns

String Manipulation

-- 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

Date Operations

-- 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
)

Window Functions

-- 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

JSON Operations

-- 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

Additional References

For deeper coverage of specific function categories, see:

  • references/string-functions.md - Complete string function reference with examples
  • references/window-functions.md - Window and ranking functions with frame specifications

You Might Also Like

Related Skills

zig-system-calls

zig-system-calls

87Kdev-database

Guides using bun.sys for system calls and file I/O in Zig. Use when implementing file operations instead of std.fs or std.posix.

oven-sh avataroven-sh
Obter
bun-file-io

bun-file-io

86Kdev-database

Use this when you are working on file operations like reading, writing, scanning, or deleting files. It summarizes the preferred file APIs and patterns used in this repo. It also notes when to use filesystem helpers for directories.

anomalyco avataranomalyco
Obter
vector-index-tuning

vector-index-tuning

26Kdev-database

Optimize vector index performance for latency, recall, and memory. Use when tuning HNSW parameters, selecting quantization strategies, or scaling vector search infrastructure.

wshobson avatarwshobson
Obter

Implement efficient similarity search with vector databases. Use when building semantic search, implementing nearest neighbor queries, or optimizing retrieval performance.

wshobson avatarwshobson
Obter

Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.

wshobson avatarwshobson
Obter
event-store-design

event-store-design

26Kdev-database

Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.

wshobson avatarwshobson
Obter