1. 程式人生 > >子查詢&分頁查詢

子查詢&分頁查詢

--子查詢

--把1個查詢結果在另一個查詢中使用,就叫做子查詢(把一個查詢語句做一個結果集使用)

--查詢:班裡所有班號是4,並且姓飛的同學資訊

select * from Tbstudent where stuClassId=10 and stuName like '飛%'

--子查詢版

--當使用子查詢時,必須給子查詢語句最後的結果集起別名

select stuName,stuNumber,stuAddress from

(select * from Tbstudent where stuClassId=10) as tb1 where stuName like '飛%'

--

練習:查詢'17級.NET班'所有學生資訊

select  * from TbClass

select stuName,stuNumber,stuAddress from Tbstudent

where stuClassId =

(select clsId from TbClass where clsName='17.net班')

--練習:查詢所有'14資料庫班'和‘15.net班’的所有同學資訊

select stuName,stuNumber,stuAddress from Tbstudent

where stuClassId in

(select clsId from

TbClass where clsName='15.net班' or clsName ='14資料庫班')

--練習:刪除所有姓王的同學

delete from Tbstudent where stuName like '王%'

delete from Tbstudent where stuId in

(select stuId from Tbstudent where stuName like '王%')

--子查詢的高階應用:

--分頁查詢:每頁顯示一條記錄

--查詢第一頁

select top(1) * from Tbstudent

--查詢第二頁

select

top(1) * from Tbstudent where stuId not in

(select top(1*1) stuId from  Tbstudent order by stuId asc) order by stuId asc

--查詢第三頁

select top(1) * from Tbstudent where stuId not in

(select top(2*1) stuId from  Tbstudent order by stuId asc) order by stuId asc

--查詢第頁

--思路:排除前多少條記錄,取剩下記錄的前幾條

--查詢第n頁,每頁顯示m條記錄

select top(m) * from Tbstudent where stuId not in

(select top((n-1)*m) stuId from  Tbstudent order by stuId asc) order by stuId asc