sqltop查詢
① sqltop應該怎麼用
select top 10 * from record --加 "top 10" 表示查詢的是數據表中的前十行數據
select top 10 percent * from record --加「top 10 percent」表示查詢的是數據表中前10%的數據,若將10改為20,則查詢的就是前20%的數據.
declare @i int --聲明變數
set @i=20 --給變數賦值
select top (@i) percent * from record --查詢數據表中前20%的數據.若後面不跟percent,則查詢的為前20行數據.
② SQL 查詢TOP子查詢
可以用變數(把查詢的SQL語句存放到字元串變數中,再用exec sp_executesql來執行):
declare @sql nvarchar(1000), @top int
select @top=sort from tx_trainslist where stationname='安康' and trainid='1004/1005'
set @sql = 'select top ' + cast(@top as varchar(10)) + ' sort from tx_trainslist where trainid=''1004/1005'' order by sort'
exec sp_executesql @sql
③ sql top用法 詳細的
top
是在上面的意思
select
top(3)
跟select
不同的就是select
是把所有符合條件的數據羅列出來,而select
top(3)只取上面三條數據
④ SQL 語句查詢,關於 TOP、ORDER BY 語句使用問題,想了很久也沒想明白,望高手指點下。
只有特定情況下的子查詢(TOP
或
FOR
XML),才允許order
by,否則子查詢中不允許出現order
by
⑤ sql查詢語句用top和order by哪個效率高
這個看錶結構,如果獲得條目最好使用top的方式,如果就是獲得一個最大欄位就用Max,用MAX受92標准制約,如果除了最大欄位還要用其它欄位反倒要用group by,相反倒麻煩了!
----------------------------------------------------------------
SET STATISTICS PROFILE ON
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO
SELECT TOP 1(Proct_ID)
FROM [Proct] ORDER BY Proct_ID
GO
SET STATISTICS PROFILE OFF
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
SET STATISTICS PROFILE ON
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO
SELECT MAX(Proct_ID)
FROM [Proct]
GO
SET STATISTICS PROFILE OFF
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
SQL Server 分析和編譯時間:
CPU 時間 = 0 毫秒,佔用時間 = 1 毫秒。
(1 行受影響)
表 'Proct'。掃描計數 1,邏輯讀取 3 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。
(3 行受影響)
SQL Server 執行時間:
CPU 時間 = 0 毫秒,佔用時間 = 1 毫秒。
SQL Server 分析和編譯時間:
CPU 時間 = 0 毫秒,佔用時間 = 0 毫秒。
SQL Server 執行時間:
CPU 時間 = 0 毫秒,佔用時間 = 0 毫秒。
SQL Server 執行時間:
CPU 時間 = 0 毫秒,佔用時間 = 0 毫秒。
SQL Server 分析和編譯時間:
CPU 時間 = 0 毫秒,佔用時間 = 2 毫秒。
(1 行受影響)
表 'Proct'。掃描計數 1,邏輯讀取 3 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。
(4 行受影響)
SQL Server 執行時間:
CPU 時間 = 0 毫秒,佔用時間 = 0 毫秒。
SQL Server 分析和編譯時間:
CPU 時間 = 0 毫秒,佔用時間 = 0 毫秒。
SQL Server 執行時間:
CPU 時間 = 0 毫秒,佔用時間 = 0 毫秒。
SQL Server 執行時間:
CPU 時間 = 0 毫秒,佔用時間 = 0 毫秒。
-------------------------------------------------------------------看出來了吧!Max並不是那麼理想,它影響了4行數據,IO了一行,top 影響了三行,IO了一行。
我這個表有三萬的數據,執行時間不相上下。但是都是scan了一次。
關鍵還是看錶結構,你上來就說那個效率高不看錶結構那是不行的,如果你的order by欄位是升序索引,或是倒排索引, top 也未必比MAX差。
如果你MAX(裡面欄位沒用索引,或是加工了函數),那麼也快不到哪去!
----------------------------------------------------------------
一句話,跟表結構有很大關系。
⑥ sql查詢語句:top n的用法
top是指按順序選取前幾個數據。order
by是屬性默認升序排列(asc),如果想倒序+desc
select
*和select
all
select
1一樣是選取所有(任意一個)
top
3前3個
select
查詢表達式是+表中的元組中的候選碼
select
no
from
no是table表中的一個碼,就是唯一標示這一元組的名字,額
就是名字
不能直接用select+數字
只能用select
123
as
no
⑦ SQL 查詢TOP *
CREATE PROCEDURE Wj_School_GetListByGaoXin1 @Info_Type varchar(50),
@top1 int
AS
DECLARE @sqlStr varchar(400)
SET @sqlstr = 'select top ' + cast(@top1 AS char(10))
+ ' * FROM
(
SELECT
DISTINCT (Wj_School.[Id]),Wj_School.[Name],Wj_School.[MaxArea], Wj_School.[Province],Wj_School.[RegTime]
FROM Wj_SchoolInfo
CROSS JOIN
Wj_School
WHERE
(Wj_SchoolInfo.[S_Id] = Wj_School.[Id]) AND (Wj_School.Groom = 1) AND (Wj_SchoolInfo.Groom = 1) AND (Wj_School.Locked = 1)AND (Wj_SchoolInfo.Info_Type = @Info_Type)
) AS A
ORDER BY A.RegTime DESC '
EXEC @sqlStr
把alanwsw的稍微改了下
---------------------------------------------------------------
CREATE PROCEDURE Wj_School_GetListByGaoXin @Info_Type varchar(50),
@top1 int AS DECLARE @top2 varchar(100)
SET @top2 = cast(@top1 AS varchar(100))
EXEC ('select top ' + @top2 + ' * FROM
(
SELECT
DISTINCT (Wj_School.[Id]),Wj_School.[Name],Wj_School.[MaxArea], Wj_School.[Province],Wj_School.[RegTime]
FROM Wj_SchoolInfo
CROSS JOIN
Wj_School
WHERE
(Wj_SchoolInfo.[S_Id] = Wj_School.[Id]) AND (Wj_School.Groom = 1) AND (Wj_SchoolInfo.Groom = 1) AND (Wj_School.Locked = 1)AND (Wj_SchoolInfo.Info_Type = '
+ @Info_Type + ')
) AS A
ORDER BY A.RegTime DESC ')
這回應該對了
⑧ VB中SQL分頁查詢TOP語句的寫法
一個是用存儲過程。
另外一種是拼湊SQL語句,按照你的描述,應該是傾向於拼湊SQL語句:
Dim PageSize as interger
Dim CurPage as interger
Dim mySql;
MyStr = "Select top " & PageSize & " * from Employees where id not in (select top " & PageSize & " *(" & CurPage & "-1) id from Employees order by id) order by id"
然後調用執行就可以了
⑨ SQL中TOP 子句的作用是什麼
top是在sqlserver中使用的
查詢前幾條記錄
sqlserver分頁主要使用top來實現
⑩ sql查詢top關鍵字
操作步驟如下:
1、首先假設在SQLServer中有一個基本的資料庫,有6條數據。
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統。