1樓:匿名使用者
select top 1 * from
(select top 168 * from infor order by i_id) tb
order by i_id desc
(select top 168 * from infor order by i_id) tb
這行的意思是從原表按順序取出168條資料放在一個虛擬表中,取個別名為tb
select top 1 * from 這句加上後面的
order by i_id desc
意思是從上面取出的168條記錄中取出最後一條記錄。
第168條到第178條是11個記錄
select top 11 * from infor as a where not exists
(select * from (select top 167 * from infor order by id) b where b.id=a.id )
order by id
解釋如下:
select top 11 * from infor as a
從表infor中取出11條記錄,併為表infor建立別名a
where not exists
為上面取11條記錄設個前提條件
(select * from (select top 167 * from infor order by id) b where b.id=a.id )
order by id
條件為前面的167條記錄不要。
2樓:
呵呵,,就算你曾經在前面對資料進行了刪除,原本在168條的這行資料也是不戶變的..
你寫的select * from infor where i_id=168
是對的....
打個比方,
這個表id | title
1 | 測試
2 | 測試1
3 | 測試2
現在id是自增列..
現在我把id為2的欄位刪掉,就成了
id | title
1 | 測試
3 | 測試2
對於id為1和id為3的欄位是沒有任何影響的..
3樓:死神左眼
我覺得最好的辦法是 把查出來的資料填充進一個臨時表中 這樣直接查詢 臨時表中的id=168就可以了
select * into temptb from inforselect * from temptb where i_id between 168 and 178
這樣插入的新表標識列是會帶過來的而且會重新編排 這種方法應該是最簡單的了
4樓:
試一下這個
select top 1 * from (select top 168 * from info order by i_id) order by i_id desc
5樓:匿名使用者
正數168還是倒數168
懸賞一句sql語句,懂的進的,懸賞一句sql語句,懂的進的
oracle的寫法 select a.id,a.名稱,a.單位,sum case when b.訂單號 a002 then b.購入數量 else null end 購入數量,sum b.購入數量 累計購入 from a,b where a.id b.id iso sql 92的寫法 select ...
高分求一段sql語句,怎麼用sql語句建立作業
exec dbo.sp add job job name n ad hoc sales data backup enabled 1,description n ad hoc backup of sales data owner login name n fran oisa notify level ...
求一個 sql語句,求一個sql寫法
sql語句和篩選結果如下 可見篩選出了mid為101的公司,滿足條件 求幫寫一個sql查詢語句 首先a表和b表沒有直接關係,所以關聯查詢的時候無法同時查詢,換句話說你給的表結構不是很對,可以先了解下我這個圖,總結 兩個表要有相同的欄位才能進行關聯查詢,完全沒有關係的話查詢是沒有意義的。select ...