㈠ sql 一个表里已经 有20行数据 ,然后要从另一个表里随机抽取20条 覆盖掉之前的数据
如果表结构一样。
首先嘛
DELETE FROM 那个只有20行数据的表
然后随机插入
由于 TOP - N 的处理, 与 随机抽取 , 各个数据库处理的 方式各不相同, 下面是不同数据库的处理办法:
Oracle:
INSERT INTO 空白表
SELECT *
FROM
(
SELECT * FROM 有数据的表 ORDER BY dbms_random.value
) subQuery
where rownum <= 20;
DB2:
INSERT INTO 空白表
SELECT *
FROM 有数据的表
ORDER BY rand()
fetch first 20 rows only;
SQL Server:
INSERT INTO 空白表
SELECT TOP 20 *
FROM 有数据的表
ORDER BY
newid();
MySQL :
INSERT INTO 空白表
select *
FROM 有数据的表
ORDER BY rand() LIMIT 0, 20;
SQLite :
INSERT INTO 空白表
select *
FROM 有数据的表
ORDER BY RANDOM() LIMIT 0, 20;
㈡ sql server和oracle中查询结果返回指定行数的语句
SQL Server下查询结果返回指定行用top命令。
如查询proct表中的5行数据:
selecttop5*fromproct;
㈢ 怎么使用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中怎样查询一个表的第20条数据到30条数据
1、创建测试表,
create table test_order(id number , value varchar2(20));