日期:2014-05-17  浏览次数:20501 次

请教高手,在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语句。