mcpField
T
tsql-functions

tsql-functions

github.com/josiahsiegelデータ・データベース59181 回インストール19 週間前に更新
リポジトリ

tsql-functions について

SQL Server 開発者向けの T-SQL 関数リファレンスです。関数の分類やバージョン別の対応状況に加え、文字列、日時、ウィンドウ、JSON の使用例を掲載しています。

主な機能

  1. 01カテゴリ別の関数リファレンス
  2. 02SQL Server のバージョン対応
  3. 03文字列・日時・ウィンドウの例
  4. 04JSON 操作の例

活用シーン

  1. 01関数の SQL Server バージョン対応を確認
  2. 02文字列や日時の変換関数を選定
  3. 03ウィンドウ関数の使用例を参照
  4. 04JSON 操作の例を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill tsql-functions

インストール後、Claude Code で/tsql-functionsを入力して読み込まれたか確認します。

同梱ファイルreferences/string-functions.mdreferences/window-functions.md

詳細

T-SQL 関数リファレンス

T-SQL のすべての関数カテゴリを、バージョンごとの利用可否とともに網羅したリファレンスです。

クイックリファレンス

文字列関数
関数説明バージョン
CONCAT(str1, str2, ...)NULL セーフな連結2012+
CONCAT_WS(sep, str1, ...)区切り文字を指定して連結2017+
STRING_AGG(expr, sep)文字列を集約2017+
STRING_SPLIT(str, sep)行に分割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)差分(int)すべて
DATEDIFF_BIG(part, s, e)差分(bigint)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オフセット関数で NULL をスキップ2022+
SQL Server 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 FROMNULL セーフな比較

基本パターン

文字列操作
-- 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
JSON 操作
-- 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

追加のリファレンス

各関数カテゴリの詳細については、以下を参照してください。

  • references/string-functions.md - 例を含む文字列関数の完全なリファレンス
  • references/window-functions.md - フレーム指定を含むウィンドウ関数と順位付け関数

コメント