SQL-выберите только первые 10 строк?
Как выбрать только первые 10 результатов запроса?
Я хотел бы отобразить только первые 10 результатов из следующего запроса:
SELECT a.names,
COUNT(b.post_title) AS num
FROM wp_celebnames a
JOIN wp_posts b ON INSTR(b.post_title, a.names) > 0
WHERE b.post_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
GROUP BY a.names
ORDER BY num DESC
10 ответов:
в SQL server используйте:
select top 10 ...
например
select top 100 * from myTable select top 100 colA, colB from myTable
в MySQL, используйте:
select ... order by num desc limit 10
зависит от вашей СУБД
MS SQL Server
SELECT TOP 10 ...
MySQL
SELECT ... LIMIT 10
Sybase
SET ROWCOUNT 10 SELECT ...
Etc.
Oracle
WHERE ROWNUM <= 10 and whatever_else ;
ROWNUM
волшебная переменная, которая содержит порядковый номер каждой строки 1..n.
ANSI SQL ответ
FETCH FIRST
.SELECT a.names, COUNT(b.post_title) AS num FROM wp_celebnames a JOIN wp_posts b ON INSTR(b.post_title, a.names) > 0 WHERE b.post_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) GROUP BY a.names ORDER BY num DESC FETCH FIRST 10 ROWS ONLY
если вы хотите, чтобы связи были включены, сделайте .
, чтобы пропустить указанное количество строк, используйте
OFFSET
, например,... ORDER BY num DESC OFFSET 20 FETCH FIRST 10 ROWS ONLY
пропустим первые 20 строк, а затем получить 10 строк.
поддерживается более новыми версиями Oracle,PostgreSQL, MS SQL Server, Mimer SQL и DB2 и др.
SELECT * FROM (SELECT ROW_NUMBER () OVER (ORDER BY user_id) user_row_no, a.* FROM temp_emp a) WHERE user_row_no > 1 and user_row_no <11
это сработало для меня.Если можно, у меня есть несколько полезных dbscripts, которые вы можете посмотреть на