Это будет рабочий код
#include <stdio.h>
void funct(int[5]);
int main()
{
int Arr[5]={1,2,3,4,5};
int j = 0;
funct(Arr);
for(j=0;j<5;j++)
printf("%d",Arr[j]);
}
void funct(int p[5]){
int i,j;
for(i=6,j=0;i<11;i++,j++)
p[j]=i;
}
. Вы можете для этого используйте ROW_NUMBER
в TSQL (начиная с 2005 г.):
SELECT ID, Foo, Bar
FROM (SELECT ROW_NUMBER() OVER (ORDER BY ID ASC) AS Row,
ID, Foo, Bar
FROM SomeTable) tmp
WHERE Row >= 50 AND Row <= 100
Или с LINQ-to-SQL и т. д .:
var qry = ctx.Table.Skip(50).Take(50); // or similar
По сути, ваш лучший выбор в SQL Server 2005 и 2008 - CTE - Common Table Expression - с функцией ROW_NUMBER () в нем - что-то вроде этого:
WITH MyOrders AS
(
SELECT
OrderID,
OrderDescription,
ROW_NUMBER() OVER (ORDER BY OrderID) as 'RowNum'
FROM YourOrders
)
SELECT * FROM MyOrders
WHERE RowNum BETWEEN 50 AND 100
Но это требует полезного и подходящее предложение ORDER BY
, и упорядочивание по GUID - действительно плохая идея. DATETIME или постоянно увеличивающийся ID было бы лучше.
Marc
Попробуйте это, результат будет упорядочен по столбцу OrderID . Замените MyTable своей таблицей.
SELECT *
FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY OrderID) AS row FROM MyTable) a
WHERE row > 50 AND row <= 100
Выбранные строки от 50 до 100 , но обратите внимание, что 50-я строка не включена в результат.
SELECT * FROM (SELECT *, ROW_NUMBER () OVER (ORDER BY OrderId) как строка FROM Orders) a WHERE строка> 5 и строка <= 10