为什么我写的:select * from ( select * from Table )
在 dbexplorer 里可以运行,而在 query.sql.text 里却报错:invaild.....?????
此为第二个加分贴,第一贴在:http://www.csdn.net/Expert/TopicView1.asp?id=829984解决后两贴一起给分!
在 dbexplorer 里可以运行,而在 query.sql.text 里却报错:invaild.....?????
此为第二个加分贴,第一贴在:http://www.csdn.net/Expert/TopicView1.asp?id=829984解决后两贴一起给分!
from后面应该是表的名字,而你上面的句子中外围的from后面却是表达式
select * from table,又dbexplorer本身对SQL语句有编译和解释的能力,所以可以把select * from table查询出来的结果直接利用,但query.sql不是一步到位的,所以当然会出错.
另外,想执行SQL语句,应该是
query1.sql.add(sql语句)
query1.ExecSQL
sql语句中是没有这样的语法的,建议把()内的作为一个视图再选
在access数据库中是可以的,我用过self.ADOQuery1.Close;
self.ADOQuery1.SQL.Clear;
self.ADOQuery1.SQL.Add('select a.* from (select * from xmk) a');
self.ADOQuery1.Prepared;
self.ADOQuery1.Open;
第一种办法:select * from ( select * from Table )
第二种办法:select a.* from ( select * from Table ) a
第三种办法:保存上次查询的SQL 语句为s1,在第二次查询时用:s1+' and 新条件 ';
都不行,
第一二种办法出错:Invalid use of keyword Token: select
第三种办法也出错,原因是我在第一次查询中使用了参数,在第二次查询中没有将参数传入,因为第一次查询是不定的,可能有参数,可能没参数,参数也是不定的。
我现在想要的是一个通用的二次查询的方法,即无论第一次查询的语句和结果是什么我都能在第一次查询得到的数据集上进行再一次的查询,请问该如何实现?
要加柄名
人家的编程工具怎么会让你去做那种没有用的东西呢?
select * from ( select * from Table )
这个查询语句的结果是什么,跟使用select * from Table 的有什么区别吗?
我估计你也是指定了什么条件的了,使用嵌套查询吧!你说你的这个是多次查询,根本不是,多次查询一层层的进行的!
别怪我说话不客气,其实你真的可以想想你写的这个语句的实际功能了!
你说的没错,他的这个sql语句是否有实际意义是很值得讨论的!
in ,exists, unique,>some ,<>all,
这种集合操作,
因为只有在一个集合上才可能 用到双重,不然就只是加一个条件,又选一下,为什么不用where.....and
呢,
ACCESS也是支持SQL的呀,主要是看楼主到底想查什么,只要在数据库里,只要你有条件,我想,SQL就一定能查出来,
不然,SQL就没有意思了,数据库原理就出问题了,楼主,你出招吧,如果你能用数学关系表达出来,大家就能把它变成SQL,!
!
我肯定不会写个这么简单而无用的句子,你自已怎么不用脑子想一想,那个句子只是简化了用来说明多次查询的而已,实际使用中那个句子中的条件有一大堆,而且还有参数,难道我也全写出来?这个只是把条件省去了的简化而已。
用 and 连接不行,因为跟本不知道前一句是什么,如果前一句没有where 字的话就会出错,而且前一句若有参数的话也会出错,
select * from ( select * from titles ) 出错!
select * from ( select * from titles ) as new_table 成功!
我用的是ms sql server !为什么下面那句ok呢?
楼主,你最好有个例子,
一定能产生出来的