日期:2014-05-18  浏览次数:20543 次

SQL字段输出记录循环控制请教
表名:test
字段
id qid tid text
1 0 3 asp
2 1 3 php
3 1 3 aspx
4 1 3 js
5 2 3 jsp
6 2 3 html

SQL语句:
SQL code

set rsc=server.createobject("adodb.recordset")
rsc.open "select * from test where qid="&ID&" and TID="&TID  ,conn,1,1
If Not rsc.EOF and Not rsc.bof Then
do while not rsc.eof
Response.Write rsc("txet")
rsc.movenext
loop
end if
rsc.close :set rsc=nothing



以上语句能输出QID等于ID的全部记录,现在要求QID为1和2的字段均输出2条记录,请教大家了

------解决方案--------------------
SQL code
--> 测试数据:[tb]
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([id] INT,[qid] INT,[tid] INT,[text] VARCHAR(4))
INSERT [tb]
SELECT 1,0,3,'asp' UNION ALL
SELECT 2,1,3,'php' UNION ALL
SELECT 3,1,3,'aspx' UNION ALL
SELECT 4,1,3,'js' UNION ALL
SELECT 5,2,3,'jsp' UNION ALL
SELECT 6,2,3,'html'
GO

--> 测试语句:
SELECT * FROM [tb]  as a where (select count(*) from tb where [qid]=a.[qid] and [id]<=a.[id])<=2
/*
id          qid         tid         text
----------- ----------- ----------- ----
1           0           3           asp
2           1           3           php
3           1           3           aspx
5           2           3           jsp
6           2           3           html

(5 行受影响)

*/

------解决方案--------------------
SQL code

SELECT * FROM [tb]  as a
 where (select count(1) from tb where [qid]=a.[qid] and [id]<=a.[id] 
and a.[qid]=[id])<=2