㈠ 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));