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,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统。