2

行とその前後の5行を選択し、それらを1つのselectステートメントで返そうとしています。どこから始めればいいの?

前もって感謝します!

4

3 に答える 3

2

ctewithROW_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
于 2012-05-15T13:28:53.430 に答える
1

UNION(疑似コード)のようなクエリを使用できます。

SELECT TOP 6 * --include row and 5 rows before
FROM table1
WHERE column1 >= @value
UNION
SELECT TOP 5 *
FROM table1
WHERE column1 < @value
于 2012-05-15T13:25:43.100 に答える
1

ROW_NUMBERを使用して問題をすばやく修正します。

サブクエリの結果にしてから、そのクエリから必要な行番号の情報を選択します。

于 2012-05-15T13:27:57.513 に答える