请教高手,在asp中可以用查询作为表来进行查询吗?谢谢
set rs=server.CreateObject("adodb.recordset")
if flag=0 then
sql="select * from check"
rs.open sql,conn,1,1
else
sql="select * from check where "&sql
rs.open sql,conn,1,1
end if
if rs.recordcount=0 then
Response.Redirect "kong.asp"
Response.End
end if
check是在表中建立的查询,可以这样直接进行查询吗?谢谢!
------解决方案--------------------
sql中可以在“表”所在的位置替换的(假设不是表,那么)是视图或者用户定义函数。你可以把check动态定义为视图或者函数,或者临时表。
你的else中显然是逻辑错误的。sql变量根本没有赋值。
即使是它赋值了(是一个查询语句),那么你也应该写成一个完整的子查询,例如
sql="select a.* from check as a left join ("&sql & ") as b on a.f1=b.f2"
或者
sql="select * from check where exists(select * from ("&sql &") as b where b.f2=check.f1)
等等,要是一个真正合基本语法的sql语句。