① sql语句如何选择数据表中最后20条记录
主要是看你是用什么来排序,如果是自动加1的ID就用
select top 20 * from table order by id desc
比如按时间的date就用
select top 20 * from table order by date desc
其中desc就是按最大或最新加入的数据排序
② 怎么使用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 SEVER2008查询第10到20条数据,怎么没结果
not exists前面不要加字段,没有这种写法,语法是错的,其次,就算语法没错,你要取的是第10到20条数据,而你的语句会取出20条数据
④ 数据库查询语句怎样查询一个表中的第15到第20条数据
用row_number来查询。
具体方法如下:
以sqlserver2008R2为例。
1、创建数据表插入数据:
createtabletest
(idint,
namevarchar(20))
insertintotestvalues(1000,'张三')
insertintotestvalues(1001,'李四')
insertintotestvalues(1002,'王五')
insertintotestvalues(1003,'赵六')
insertintotestvalues(1004,'孙七')
insertintotestvalues(1005,'杨八')
insertintotestvalues(1006,'刘九')
insertintotestvalues(1007,'李白')
insertintotestvalues(1008,'杜甫')
insertintotestvalues(1009,'白居易')
insertintotestvalues(1010,'王安石')
insertintotestvalues(1011,'范仲淹')
insertintotestvalues(1012,'老子')
insertintotestvalues(1013,'庄子')
insertintotestvalues(1014,'孙子')
insertintotestvalues(1015,'乔丹')
insertintotestvalues(1016,'詹姆斯')
insertintotestvalues(1017,'韦德')
insertintotestvalues(1018,'罗德曼')
insertintotestvalues(1019,'梅西')
insertintotestvalues(1020,'内马尔')
2、执行语句,查询从id由小到大,然后找出第15到第20位的数据:
selectt.id,t.name,t.rnfrom
(selecttest.*,row_number()over(orderbyid)rnfromtest)t
wheret.rnbetween15and20
执行结果如下:
其中红框部分即为排名信息。
⑤ 如何使SQL2005中一条数据变成很多条 还不重复 要求用循环。
declare @i int
declare @j int
declare @m int
declare @strsql(8000)
set @i=1
while(@j <=3000) --三千次 每次100条
set @m=1
begin
set @strsql= "insert into sqlex select 'T'" + right( "00000000 " + convert(varchar(8),@i),8) " , 17, 0,'一三','[email protected]',167543,165722223456785643,default,default"
while(@m <=100)
begin
set @i=@i+1
set @strsql= @strsql + "union insert into sqlex select 'T'" + right( "00000000 " + convert(varchar(8),@i),8) " , 17 , 0,'一三','[email protected]',167543,165722223456785643,default,default"
set @m=@m+1
end
exec(@strsql)
set @j=@j+1
end
⑥ 在SQL中怎样查询一个表的第20条数据到30条数据
1、创建测试表,
create table test_order(id number , value varchar2(20));
⑦ sql查询记录(第10-20条记录)
假设数据按字段名ID从小到大排序的。
SQL=\"select top 10 * from [table_name] where id in (select top 20 id from [table_name] order by id desc) order by id asc\"
这样显示出来的就是:从11到20条数据
⑧ sql怎么实现批量插入20条记录
以前用Mysql做开发一直是这样用的:
INSERT INTO TABLE(col1, col2) VALUES(val11, val12), (val21, val22) ;
最近用SQLite才发现这个语法并非标准SQL,故而SQLite并不支持。经过一番查找,发现如下方法可以替代:
INSERT INTO TABLE(col1, col2) SELECT val11, val12 UNION ALL SELECT val21, val22 ;
这样的写法是属于复合SQL语句,表示先把两个SELECT的结果集进行无删减的联合,再把联合结果插入到TABLE中。
⑨ 删除最新20条数据外的sql语句
你用的是什么数据库?这张表有没有设置ID主键?如果有自增ID的话好办:delete from table_name where id < (select max(id) - 20 from table_name)
⑩ 求条SQL语句,,,在数据库news表里查询出最新的20条数据的后10条,要求只用一条语句来完成。。
查询以主键ID为标识的最新20条记录的后10条记录,如果你的表中有日期字段也可以按日期字段查询。
select top 10 * from news where NewsID in (select top 20 NewsID from News order by NewsID desc) order by NewsID desc