如果数据库中只有一行记录,使用 SELECT TOP 2 查询语句将返回这一行记录。虽然指定了 TOP 2,但是由于只有一行记录,所以查询结果只有一行。如果数据库中没有任何记录,使用 SELECT TOP 2 查询语句将返回空结果集。
在编程中,经常会用到取数据库中某一段的记录,如果要取前几条记录都是很简单,在asp中,直接用top就可以了,在php中,用limit就可以,但如果要取数据库中的第N条到第N条怎么办呢,也就是要取数据库中间的数据,在php,取中间的数据,可以用limit很自然的就实现了,主要是asp编程中,需要在sql语句中再重新嵌入一个sql语句,下面看看asp和php中不同的sql读取中间几条记录。
1Aess采用top
从表中取出第M条到第N条的记录(如N=M10)
selecttopN-M1from[tableName]where(idnotin(selecttopM-1idfrom[tableName]))
selecttopN-M1from[tableName]asawherenotexists(selectfrom(selecttopM-1from[tableName]orderbyid)bwherebid=aid)orderbyid
注意:上述语句不能取从第1条到第N条的数据(即M=1时失效),因为selecttopN中N必须从1开始(参考:数据库读取前几条记录的SQL语句大全):此问题的解决办法:要取第1到N条的记录,需要使用selecttopN解决。
取数据库第20到第30条中间的十条记录的sql语句
selecttop10from[tableName]whereidnotin(selecttop20idfrom[tableName]orderbyid)
删除前10行
deletefrom[tableName]whereidin(selecttop10idfrom[tableName])
删除10-20条
deletefrom[tableName]whereidin(selecttop20idfrom[tableName])andidnotin(selecttop10idfrom[tableName])
2MySql采用limit
limit子句可以被用于强制select语句返回指定的记录数。limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是0(而不是1)
检索记录行11-15
selectfrom[tableName]limit10,15
我的这个方法有点复杂,但是应该能实现!
select from table
where column = (select max(column) from table
where column < (select max(column) from table where column< (select max (column) from table where column<(select max(column) from table where column<(select max(column) from table where column<)))))
一层层锅炉,先抓最大的,在抓第二大的,一直抓到第五
以上就是关于如果数据库中只有一行记录使用selecttop2的结果是什么全部的内容,包括:如果数据库中只有一行记录使用selecttop2的结果是什么、数据库中间层、数据库中,查出表中第五大的数据,sql语句怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)