Подтвердить что ты не робот

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
4b9b3361

Ответ 1

В SQL-сервере используйте:

select top 10 ...

например.

select top 100 * from myTable
select top 100 colA, colB from myTable

В MySQL используйте:

select ... order by num desc limit 10

Ответ 2

Зависит от вашей РСУБД

MS SQL Server

SELECT TOP 10 ...

MySQL

SELECT ... LIMIT 10

Sybase

SET ROWCOUNT 10
SELECT ...

Etc.

Ответ 3

В MySQL:

SELECT * FROM `table` LIMIT 0, 10

Ответ 4

Oracle

WHERE ROWNUM <= 10  and whatever_else ;

ROWNUM - волшебная переменная, которая содержит каждое порядковое число строк 1..n.

Ответ 5

Ответ 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

Если вы хотите, чтобы связи были включены, вместо этого сделайте FETCH FIRST 10 ROWS WITH TIES.

Чтобы пропустить указанное количество строк, используйте OFFSET, например,

...
ORDER BY num DESC
OFFSET 20
FETCH FIRST 10 ROWS ONLY

Пропустит первые 20 строк, а затем извлечет 10 строк.

Поддерживается более новыми версиями Oracle, PostgreSQL, MS SQL Server, Mimer SQL, DB2 и т.д.

Ответ 6

DB2

... FETCH FIRST 10 ROWS ONLY

Ответ 7

То, что вы ищете, является предложением LIMIT.

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
   LIMIT 10

Ответ 8

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, которые вы можете посмотреть

Полезные Dbscripts

Ответ 9

Firebird:

SELECT FIRST 10 * FROM MYTABLE

Ответ 10

SELECT* from <table name> WHERE rownum <= 10;

Ответ 11

SELECT  Top(12) Month, Year, Code FROM TempEmp 
ORDER BY  Year DESC,month DESC

Ответ 12

PostgreSQL:

SELECT ... LIMIT [num] OFFSET [num];