쿼리의 처음 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
답변
SQL 서버에서 다음을 사용하십시오.
select top 10 ...
예 :
select top 100 * from myTable
select top 100 colA, colB from myTable
MySQL에서는 다음을 사용하십시오.
select ... order by num desc limit 10
답변
RDBMS에 따라 다름
MS SQL 서버
SELECT TOP 10 ...
MySQL
SELECT ... LIMIT 10
Sybase
SET ROWCOUNT 10
SELECT ...
기타.
답변
MySQL에서 :
SELECT * FROM `table` LIMIT 0, 10
답변
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 등에서 지원됩니다.
답변
표준 SQL에서는 다음을 사용할 수 있습니다.
... FETCH FIRST 10 ROWS ONLY
이는 DB2, PostgreSQL 및 Oracle 12.1 (이상)에서 지원됩니다.
답변
신탁
WHERE ROWNUM <= 10 and whatever_else ;
ROWNUM
각 행의 시퀀스 번호 1을 포함하는 매직 변수입니다. n .
답변
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
이것은 나를 위해 일했습니다. 내가 볼 수있는 유용한 dbscript가 거의 없다면