Skip to content
tsql-functions logo

T-SQL Functions Reference

tsql-functions

Complete T-SQL function reference for SQL Server and Azure SQL Database. PROACTIVELY activate for: (1) string functions (CONCAT_WS, STRING_SPLIT, STRING_AGG, TRIM, REPLACE, LEFT/RIGHT/SUBSTRING), (2) date/time functions (DATEADD, DATEDIFF, FORMAT, DATETRUNC, AT TIME ZONE), (3) math and conversion...

SKILL.md

Full skill instructions

T-SQL Functions Reference

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

Quick Reference

String Functions

FunctionDescriptionVersion
CONCAT(str1, str2, ...)NULL-safe concatenation2012+
CONCAT_WS(sep, str1, ...)Concatenate with separator2017+
STRING_AGG(expr, sep)Aggregate strings2017+
STRING_SPLIT(str, sep)Split to rows2016+
STRING_SPLIT(str, sep, 1)With ordinal column2022+
TRIM([chars FROM] str)Remove leading/​trailing2017+
TRANSLATE(str, from, to)Character replacement2017+
FORMAT(value, format).NET format strings2012+

Date/​Time Functions

FunctionDescriptionVersion
DATEADD(part, n, date)Add intervalAll
DATEDIFF(part, start, end)Difference (int)All
DATEDIFF_BIG(part, s, e)Difference (bigint)2016+
EOMONTH(date, [offset])Last day of month2012+
DATETRUNC(part, date)Truncate to precision2022+
DATE_BUCKET(part, n, date)Group into buckets2022+
AT TIME ZONE 'tz'Timezone conversion2016+

Window Functions

FunctionDescriptionVersion
ROW_NUMBER()Sequential unique numbers2005+
RANK()Rank with gaps for ties2005+
DENSE_RANK()Rank without gaps2005+
NTILE(n)Distribute into n groups2005+
LAG(col, n, default)Previous row value2012+
LEAD(col, n, default)Next row value2012+
FIRST_VALUE(col)First in window2012+
LAST_VALUE(col)Last in window2012+
IGNORE NULLSSkip NULLs in offset funcs2022+

SQL Server 2022 New Functions

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

More Other skills

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

179.7K 100.1K
View

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

179.7K 89.5K
View

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

179.7K 76.1K
View

Fundamental design principles for writing maintainable, testable Python code.

40.2K 21.9K
View

Modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first strategies.

40.2K 20K
View

Generate Playwright tests from scenarios using interactive browser exploration and validation.

39.7K 18.2K
View

Modern React state management with Redux Toolkit, Zustand, Jotai, and React Query for every state category.

40.2K 14.7K
View

GDPR-compliant data handling with consent management, data subject rights, and privacy controls.

40.2K 14.3K
View

Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.

40.2K 13.5K
View

Detailed multi-file refactor planning with safety checks and rollback guidance.

39.7K 13K
View