Как реализовать ПРЕДЕЛ с Microsoft SQL Server?

Вы можете использовать HttpClient

Это доступно в .NET Framework 4.5+, .NET Standard 1.1+, .NET Core 1.0+.

В C # вы можете получить его через NuGet

Включая :

с помощью System.Net .Http;

blockquote>

Настоятельно рекомендуется создать один экземпляр HttpClient для времени жизни вашего приложения и поделиться им. Например:

приватная статическая только для чтения HttpClient client = new HttpClient ();

blockquote>

И, наконец, вы можете отправить свой POST-запрос с помощью PostAsync метода из HttpClient:

var values ​​= new Dictionary {{"parameter1", "value1"}, {"parameter2", "value2"}};

var content = new FormUrlEncodedContent (значения);

var response = await client.PostAsync (" http://myapiurl.com/myapi/csos.asp ", content);

var responseString = await response.Content.ReadAsStringAsync ();

blockquote>

В ответ вы получите строку, например, если ваш API возвращает строку или json.

Это один из многих способов отправить POST-запрос в Api. Вы также можете использовать:

RestSharp

FlurHttp

[ 1127] WebClient

120
задан Abdulla Nilam 11 January 2018 в 10:26
поделиться

7 ответов

Запуская SQL-СЕРВЕР 2005, можно сделать это...

USE AdventureWorks;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber BETWEEN 10 AND 20;

или что-то вроде этого на 2000 и ниже версий...

SELECT TOP 10 * FROM (SELECT TOP 20 FROM Table ORDER BY Id) ORDER BY Id DESC
117
ответ дан Leon Tayson 24 November 2019 в 01:37
поделиться
SELECT TOP 10 * FROM table;

Совпадает с

SELECT * FROM table LIMIT 0,10;

, Вот статья о реализации Предела в MsSQL, Это - хорошее чтение, особенно комментарии.

-2
ответ дан Ólafur Waage 24 November 2019 в 01:37
поделиться

Если я помню правильно (это было некоторое время, так как я приложил с SQL Server), можно быть в состоянии использовать что-то вроде этого: (2005 и)

SELECT
    *
   ,ROW_NUMBER() OVER(ORDER BY SomeFields) AS [RowNum]
FROM SomeTable
WHERE RowNum BETWEEN 10 AND 20
-2
ответ дан Kris 24 November 2019 в 01:37
поделиться

Это - многоступенчатый подход, который будет работать в SQL2000.

-- Create a temp table to hold the data
CREATE TABLE #foo(rowID int identity(1, 1), myOtherColumns)

INSERT INTO #foo (myColumns) SELECT myData order By MyCriteria

Select * FROM #foo where rowID > 10
1
ответ дан Bill Karwin 24 November 2019 в 01:37
поделиться
SELECT  *
FROM    (
        SELECT  TOP 20
                t.*, ROW_NUMBER() OVER (ORDER BY field1) AS rn
        FROM    table1 t
        ORDER BY
                field1
        ) t
WHERE   rn > 10
12
ответ дан Quassnoi 24 November 2019 в 01:37
поделиться

Это - почти дубликат вопроса, который я задал в октябре: ПРЕДЕЛЬНЫЙ пункт MySQL Emulate в Microsoft SQL Server 2000

при использовании Microsoft SQL Server 2000 нет никакого хорошего решения. Большинство людей должно обратиться к получению результата запроса во временной таблице с IDENTITY первичный ключ. Тогда запрос против столбца первичного ключа с помощью BETWEEN условие.

при использовании Microsoft SQL Server 2005 или позже Вы имеете ROW_NUMBER() функция, таким образом, можно получить тот же результат, но избежать временной таблицы.

SELECT t1.*
FROM (
    SELECT ROW_NUMBER OVER(ORDER BY id) AS row, t1.*
    FROM ( ...original SQL query... ) t1
) t2
WHERE t2.row BETWEEN @offset+1 AND @offset+@count;

можно также записать это как общее выражение таблицы как показано в @Leon Tayson ответ .

18
ответ дан Community 24 November 2019 в 01:37
поделиться

Неуклюжий, но это будет работать.

SELECT TOP 10 * FROM table WHERE id NOT IN (SELECT TOP 10 id FROM table ORDER BY id) FROM table ORDER BY id

пропуск MSSQL ПРЕДЕЛЬНОГО пункта является преступным, IMO. Вам не придется сделать этого вида топорного обходного решения.

55
ответ дан ceejayoz 24 November 2019 в 01:37
поделиться
Другие вопросы по тегам:

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