一、我們有時候會將查詢結果作爲一個表來繼續完成查詢工作,例如:查詢工資大於平均工資的人
整個表內容如下
sql語句如下
select renwu.bianhao,renwu.xingming,renwu.xingbie,renwu.gongzi,lsb.pjgz from renwu,(select bianhao,avg(gongzi) pjgz from renwu group by bianhao)lsb where lsb.bianhao=renwu.bianhao and renwu.gongzi>
(select bianhao,avg(gongzi) pjgz from renwu group by bianhao)lsb --這句就是把查詢結果作爲了一個臨時表lsb
結果
注:我使用的是sqlserver2005的環境
注意group by的用法,select xingming,arg(gongzi) from renwu group by bianhao 這樣寫是會報錯的,你這樣寫數據庫結果是講一組的數據用一條展示的,他不知道這一組的xingming應該給你展示哪個xingming
二、分頁
1)在sqlserver2005下
這裏我們有7條語句,我們按照工資排序,我們只取最後兩條結果 就是第6、7條數據,那麼查詢時候先查出第1到第5條結果,然後用not in ----我也不太明白爲什麼這麼查,根據課件先這麼總結吧
select top 2 gongzi,xingming from renwu where gongzi not in(select top 5 gongzi from renwu order by gongzi ) order by gongzi
2)mysql
在百度知道里面搜到了這種分頁方法 使用limit
select * from userdetail limit (pageNow-1)*pageSize,pageSize; 這個方法應該不錯 limit(2,20)檢索記錄行
3-22
關於limit的更多使用方法:
http://www.php100.com/html/webkaifa/database/Mysql/2010/0120/3838.html