sql server 2005子查询的使用

如果我要在一个表中查询第2条记录或者第4条记录,请问查询语句怎么写?请举例说明?并说明您这样写的原因.谢谢如有表:stuInfo列stuNo,stuName,sex....

第1个回答  2011-10-19
SELECT stuNo,stuName,sex FROM
(SELECT stuNo,stuName,sex ,ROW_NUMBER() OVER(ORDER BY stuNo)AS A FROM stuInfo) AS B
WHERE A=2

ROW_NUMBER() OVER() 是一个系统自定义的函数吧,是可以生成自动增长序号的
ORDER BY 就是排序,后面跟的你要排序的字段
记住后面查询出来的表一定要给个别名,因为A这个字段是新的,是本身表没有的,也就是说后面的是虚拟表,你是从虚拟表中查的数据。
WHERE 后面跟你所要的条件。
第2个回答  2011-10-19
SELECT *,ROW_NUMBER() OVER(ORDER BY personnelid ASC) AS 'Row_ID'
INTO #temp2
FROM t_attdata
WHERE f_date=@pdate1 AND personnelid IN (SELECT personnelid FROM #temp)

SELECT * INTO #temp5 FROM t_repsch WHERE 2=1
INSERT INTO #temp5(row_id1,calcno,dep_id,f_date,personnelid1,pname1,duty1,zccq1,psfj1,psjb1,zmjb1,gjjb1,nxj1,yxj1,wxj1,kg1,jtype1)
SELECT row_id,@psid1 as psid,dep_id,f_date,personnelid,pname,duty_hours,plan_hours,fj_hours,ps_hours,zm_hours,fd_hours,nx_hours,yxj_hours,wxj_hours,kg_hours,holidaytype FROM #temp2 WHERE (row_id/2)*2<>row_id
UPDATE #temp5 SET row_id2=row_id,
personnelid2=personnelid,
pname2=pname,
duty2=duty_hours,
zccq2=plan_hours,
psfj2=fj_hours,
psjb2=ps_hours,
zmjb2=zm_hours,
gjjb2=fd_hours,
nxj2=nx_hours,
yxj2=yxj_hours,
wxj2=wxj_hours,
kg2=kg_hours,
jtype2=holidaytype FROM #temp2 WHERE (#temp2.row_id-1)=#temp5.row_id1

UPDATE #temp5 SET billno=@billno1本回答被网友采纳
相似回答