Ответ 1
select top(@count) * from users
Если @count
является константой, вы можете отменить круглые скобки:
select top 42 * from users
(последний также работает на SQL Server 2000, а первый - не менее 2005)
Есть ли способ выбрать, например, первые 10 строк таблицы в T-SQL (работающий MSSQL)?
Я думаю, что я видел что-то в Oracle, определенное как мета-переменная rownum, используемое следующим образом
выберите * from Users, где rownum < = 10Но как насчет MSSQL?
select top(@count) * from users
Если @count
является константой, вы можете отменить круглые скобки:
select top 42 * from users
(последний также работает на SQL Server 2000, а первый - не менее 2005)
SELECT TOP 10 *
FROM Users
Обратите внимание, что если вы не укажете предложение ORDER BY
, тогда могут быть возвращены любые 10 строк, поскольку "первые 10 строк" не выполняются "Это действительно ничего не значит, пока вы не сообщите базе данных о том, что нужно использовать.
Вы можете использовать функцию Microsoft row_number(), чтобы решить, какие строки возвращаться. Это означает, что вы не ограничены только лучшими результатами X, вы можете брать страницы.
SELECT *
FROM (SELECT row_number() over (order by UserID) AS line_no, *
FROM dbo.User) as users
WHERE users.line_no < 10
OR users.line_no BETWEEN 34 and 67
Вы должны сначала вставить исходный запрос, потому что в противном случае вы получите сообщение об ошибке, сообщающее вам, что вы не можете делать то, что хотите, в том, как вы, вероятно, должны быть в идеальном мире.
Msg 4108, Level 15, State 1, Line 3
Windowed functions can only appear in the SELECT or ORDER BY clauses.
Вы также можете использовать rowcount, но TOP, вероятно, лучше и чище, следовательно, upvote для Mehrdad
SET ROWCOUNT 10
SELECT * FROM dbo.Orders
WHERE EmployeeID = 5
ORDER BY OrderDate
SET ROWCOUNT 0
Попробуйте следующее:
SELECT * FROM USERS LIMIT 10;
Попробуйте это.
declare @topval int
set @topval = 5 (customized value)
SELECT TOP(@topval) * from your_database
SELECT TOP 10 * FROM TABLE_NAME ORDER BY ORDERED_UNIQUE_COLUMNDESC
ORDERED_UNIQUE_COLUMN может быть вашим добавочным первичным ключом или временной меткой