-
從表表中提取從 m 到 n 的記錄:(不在版本中)。
select top n-m+1 *
from table
where (id not in (select top m-1 id from table ))
將表中的記錄檢索到 n(存在版本)。
select top n-m+1 * from table as a where not exists
select * from (select top m-1 * from table order by id) b where )
order by id
m為上標,n為下標,取第8到12條記錄,m=8,n=12,table為表名。
select top n-m+1 * from table
where id>(select max(id) from
select top m-1 id from table order by id asc) temp)
order by id asc
-
select top 10 *
from a
where id not in (select top 20 id from a order by id)
首先,在子查詢中查詢前 20 行記錄。
不在前 20 行中的記錄以 id 輸出。
在外部查詢中,只允許輸出匹配表的前 10 行,正好是 21 到 30 行。 呵呵。
-
SQL 2005 具有 row number() 函式。
select row_number() over(order by id) as list_id,* from a
其中列表 id>20 和列表 id<31 如果是sql2000,基本上只能是top....not in, not in 是最不有效的語句。
select top 10 *
from a
where id not in (select top 20 id from a order by id)
-
頂部是sqlserver,oracle使用rownum,oracle中rownum的用法是只能嘗試rownum<,而不能使用rownum>
between 也行不通,所以我支援 zhenzhi4444 的方法。
-
select * from table where rownum<31
minusselect * from table where rownum<21
取出前 30 條記錄減去前 20 條記錄。
-
select top 10 * from table where id not in select top 20 * from table)
如有必要,請按 ID 排序以確保正確性。
-
有那麼複雜嗎?。。
select *from a where id>=21 and id<=30 order by id desc.不是這樣。
測試並通過。
-
我是帶著這個問題來的。
通過。 從表 ID 不在的表中選擇前 10 * (從表中選擇前 20 個表 ID)。
update t1 set c1=isnull(c1,0),c2=isnull(c2,0)..
如果你覺得拼接很麻煩,你可以用Excel用公式生成這個列表。 >>>More
可以解決! ()
1. 首先,將 XuekeId 和 Id 字段新增到現有表中,並使用 loop 語句更新 XuekeId 字段。 >>>More
這個SQL有點麻煩,所以它簡單明瞭。
select id,name,type,score from student where type='小學生' limit 2 union select id,name,type,score from student where type='中學生' limit 2 ; >>>More