❶ sqlserver 查詢出每種分類的前10條
這里假設表格為:一個類型表和一個新聞表,取出類型表中的每個新聞類型都查出新聞表中屬於該類型的最新的前10條
select標題,編號,時間,類型編號,類型名稱from
(select
RANK()OVER(PARTITIONBY新聞表.類型編號ORDERBY新聞表.時間DESC)AS
RANK2,標題,編號,時間,新聞表.類型編號,類型名稱from
新聞表leftjoin類型表On新聞表.類型編號=類型表.類型編號)T
whereRANK2<=10
❷ 從SQl中查詢數據,只顯示前10條數據,無論有沒有數據,10行始終顯示,空白即可。怎麼實現啊
設表名及結構為:TABLENAME(FIELD1,FIELD2,FIELD3)
這樣:
select
top
10
FIELD1,FIELD2,FIELD3
from
(
SELECT
SORTSTR=0,FIELD1,FIELD2,FIELD3
FROM
TABLENAME
union
SELECT
SORTSTR=1,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=2,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=3,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=4,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=5,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=6,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=7,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=8,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=9,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=10,FIELD1='',FIELD2='',FIELD3=''
)
a
order
by
SORTstr
思路是,1、查詢中加一個排序欄位,用來次空記錄放到最後。
2、寫出10個空記錄查詢與主表連接。
這樣,無論主表有多少條記錄,都能顯示10條記錄,不足的用空記錄補充
語句看似很多,其實10行空記錄只要寫一行,其餘復制即可。
❸ 如何在sqlserver中查詢某張表的前10行數據
SELECT TOP 10 * FROM 表名
❹ 查詢資料庫中的前10條記錄
SQL Server查詢前N條記錄:
因為id可能不是連續的,所以不能用取得10<id<20的記錄的方法。
有三種方法可以實現:
一、搜索前20條記錄,指定不包括前10條
語句:
select top 20 * from tbl where id not in (select top 10 id from tbl)
二、搜索記錄生成臨時表,建立臨時表的自增id。通過取得自增id的10<id<20的記錄的方法取得所需數據
語句:
select identity(int,1,1) as id,* into #temp from tbl;
select * from #temp where id between 10 and 20
第二個方法實際上是兩條語句,但你可以讓他連續執行,就像一條語句一樣完成任務。
三、如果覺得第一種方法效率太低,經過討論,得出第三種方法:
語句:
SELECT TOP 10 * FROM (SELECT TOP 20 * FROM tblORDER BY id) as tbl2 ORDER BY tbl2.id DESC
❺ 常用幾種資料庫,取前10條記錄的sql語句寫法
MYSQL
查詢語句+LIMIT+10 取查詢記錄的前十條。
如:SELECT * FROM Test LIMIT 10
查詢語句+LIMIT+2,10 取查詢語句,從第二條記錄,取十條記錄。
如:SELECT * FROM Test LIMIT 2,10
❻ 怎麼使用sql server查詢顯示第10條到第20條信息
1、sql查詢前10條數據:
select top 10 * from tablename where 1=1;1
2、oracle查詢前10條數據:
select * from tablename where rownum<=10;1
oeacle中沒有top,使用的是rownum,下面是關於rownum的介紹:
================================
rownum是Oracle從8開始提供的一個偽列,是把SQL出來的結果進行編號,始終從1開始,常見的用途就是用來分頁輸出.
select * from tablename where rownum<=10;1
rownum也可以實現數據分頁查詢:
SELECT *
FROM (SELECT a.*, ROWNUM rn
FROM tablename a)
WHERE rn >= 10 AND rn <= 201234567
這條語句即是輸出第10到第20條紀錄,這里之所以用rownum rn,是把rownum轉成實例,因為rownum本身只能用 <=的比較方式,只有轉成實列,這樣就可做 >=的比較了。
❼ sql server 怎麼查詢前n條數據
1. Oracle資料庫
SELECT * FROM TABLENAME WHERE ROWNUM <= N
2. Infomix資料庫
SELECT FIRST N * FROM TABLENAME
3. DB2資料庫
SELECT *
FROM (SELECT * ROW_NUMBER() OVER({ORDER BY COL1 DESC}) AS ROWNUM FROM TABLENAME)
WHERE ROWNUM <= N
或者
SELECT COLUMN FROM TABLENAME FETCH FIRST N ROWS ONLY
4. SQL Server資料庫
SELECT TOP N * FROM TABLENAME
5. Sybase資料庫
SET ROWCOUNT N
GO
SELECT * FROM TABLENAME
6. MySQL資料庫
SELECT * FROM TABLENAME LIMIT N
7. FoxPro資料庫
SELECT * TOP N FROM TABLENAME ORDER BY COLUMN
以下示例從表 [tableName] 中讀取符合查詢條件的前10條記錄的SQL語句
1.Access
select top (10) * from [tableName] where [query condition]
1.1 帶order by的查詢限制
Access中對select top的語句支持有限,如果要在查詢top語句的後面使用order by,則order by排序欄位必須是無重復值,如果有重復值的話,那麼這個TOP很可能會失效,會返回所有記錄。
解決辦法:在order by 最後面加入主鍵id,如:
select top 10 from [tableName] order by 排序欄位1,id
1.2 帶子查詢的示例
假如id是表[tableName]的主鍵,以下語句期望返回三條記錄,但結果返回4條記錄
select top 3 * from [tableName] where id in(是個子查詢,結果比如為1,2,3,4)
解決辦法
select top 3 * from [tableName] where id in(是個子查詢,結果比如為1,2,3,4) order by id
2 DB2
select column from [tableName] where [query condition] fetch first 10 rows only
3 MySQL
select * from [tableName] where [query condition] limit 10
4 SQL Server
4.1 讀取前10條
select top (10) * from [tableName] where [query condition]
4.2 讀取後10條
select top (10) * from [tableName] order by id desc
4.3 按照某個排序,第5到10這幾個記錄
select top 6 * from [tableName] where id not in(select top 4 id from [tableName])
5 Oracle
select * from [tableName] where rownum<=10
❽ MySql怎麼查詢前10條數據
MySql查詢前10條數據sql語句為:select*fromtable_namelimit0,10 。
通常0是可以省略的,直接寫成 limit 10。0代表從第0條記錄後面開始,也就是從第一條開始。
(8)sqlserver查詢前10條數據擴展閱讀:
1、SQLServer查詢前10條的方法為:
selecttopX*fromtable_name
2、ORACLE查詢前10條的方法:
select*fromtable_namewhererownum<X
3、Informix查詢前10條記錄的方法:
selectfirst10*fromtablename