行とその前後の5行を選択し、それらを1つのselectステートメントで返そうとしています。どこから始めればいいの?
前もって感謝します!
cte
withROW_NUMBER
関数を使用できます。
WITH cte AS(
SELECT t.*
, ROW_NUMBER()OVER(ORDER BY OrderColumn)AS RowNum
FROM Table t
)
SELECT cte.* FROM cte
WHERE RowNum >= @rowToSelect - 5 AND RowNum <= @rowToSelect + 5
UNION
(疑似コード)のようなクエリを使用できます。
SELECT TOP 6 * --include row and 5 rows before
FROM table1
WHERE column1 >= @value
UNION
SELECT TOP 5 *
FROM table1
WHERE column1 < @value
ROW_NUMBERを使用して問題をすばやく修正します。
サブクエリの結果にしてから、そのクエリから必要な行番号の情報を選択します。