Эквивалентный из ПРЕДЕЛА и СМЕЩЕНИЯ для SQL Server?

Внесено несколько изменений, из предложенных вариантов работает пространство имен Methodss {class Program {static void Main (string [] args)

    {
        SayHi();
    }
    static void SayHi()
    {
        Console.WriteLine("Enter Your Name");
        var name=Console.ReadLine();
        Console.WriteLine("Enter Your Age");
        int age = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Hello \t" + name + " you are " + age + " Years old");
        Console.ReadLine();
    }
}

}

161
задан Somnath Muluk 11 January 2013 в 05:24
поделиться

4 ответа

Если он действительно хочет одного вкладыша без каких-либо коллекций, хорошо, он может иметь один:

for(String s:new String[]{"a", "b", "c")) if (s.equals("a")) System.out.println("It's there");

* Smile *

(не так не уродливо? Это в реальном коде)

-121--1250491-

Эквивалент пределе установлен SET ROWCOUNT , но если вы хотите общедоступное страсть, лучше написать запрос:

;WITH Results_CTE AS
(
    SELECT
        Col1, Col2, ...,
        ROW_NUMBER() OVER (ORDER BY SortCol1, SortCol2, ...) AS RowNum
    FROM Table
    WHERE <whatever>
)
SELECT *
FROM Results_CTE
WHERE RowNum >= @Offset
AND RowNum < @Offset + @Limit

Преимущество Вот параметризация смещения и ограничения в случае, если вы решите изменить варианты подкачки (или позволить пользователю это сделать).

Примечание: Параметр @offset должен использовать одну индексирование для этого, а не нормальную индексацию на основе нуля.

135
ответ дан 23 November 2019 в 21:25
поделиться
SELECT * FROM [dbo].[TableName] Order By  [dbo].[TableName].FieldName DESC
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY
-2
ответ дан 21 September 2019 в 00:10
поделиться

На SQL Server вы бы использовали верхний состав вместе с row_number ()

0
ответ дан 23 November 2019 в 21:25
поделиться

Вы можете использовать Row_Number в общем выражении таблицы для достижения этого.

;WITH My_CTE AS
(
     SELECT
          col1,
          col2,
          ROW_NUMBER() OVER(ORDER BY col1) AS row_number
     FROM
          My_Table
     WHERE
          <<<whatever>>>
)
SELECT
     col1,
     col2
FROM
     My_CTE
WHERE
     row_number BETWEEN @start_row AND @end_row
12
ответ дан 23 November 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: