D dingqiangqiang Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-26 #1 我现在在做有关数据库的问题,我就是在查询完后,我还想在在结果中查询,本来想用创建临时表 来解决这个问题,但是,我觉得这个比较麻烦,也不大好用,那位高手能给我一个好的建议。 恳请大家帮忙。
E eric.youbin Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-26 #2 如果你的源数据量很大的话,创建临时表是一个很好的办法 但是如果数据量不大,就重新组合sql语句,再查 带上原来的where条件,新的条件就追加在后面
T troyliu Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-26 #3 你应该用组合查询 select * from A where A.ID in(select * from B where B.='')
H htw Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-27 #5 使用filter的功能呀? 在Table或Query的Filter属性中设置‘变量*’可以实现右模糊查询,无左模糊。 Query1.Close; Query1.Filter:='fld='''+edit1.text+'*'''; Query1.Filtered:=true; Query1.Open; filter功能是在客户端处理以前从数据库中返回的结果集的,它的处理和数据库无关, 它支持一些简单的比较,但不支持like,你需要用query控件,使用在sql的hwhere来做 like, 不支持左模糊。 delphi6/Demos/Db/Filter目录中有一个例子,粗看比较烦, 看懂就简单了
使用filter的功能呀? 在Table或Query的Filter属性中设置‘变量*’可以实现右模糊查询,无左模糊。 Query1.Close; Query1.Filter:='fld='''+edit1.text+'*'''; Query1.Filtered:=true; Query1.Open; filter功能是在客户端处理以前从数据库中返回的结果集的,它的处理和数据库无关, 它支持一些简单的比较,但不支持like,你需要用query控件,使用在sql的hwhere来做 like, 不支持左模糊。 delphi6/Demos/Db/Filter目录中有一个例子,粗看比较烦, 看懂就简单了
S sentiment Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-27 #6 我觉的你的问题是关于连机视图的。 什么是连机视图呢,举例如下: 查询1:SELECT FIELD1,FIELD2,FIELD3 FROM TABLE1 WHERE 条件表达。 查询2:SELECT FIELD1,FIELD3 FROM ( SELECT FIELD1,FIELD2,FIELD3 FROM TABLE1 WHERE 条件表达。 ) WHERE FIELD2=表达式 。 也就是说你可以将一个查询的结果当成一个视图来使用,只不是在本机上的而已。
我觉的你的问题是关于连机视图的。 什么是连机视图呢,举例如下: 查询1:SELECT FIELD1,FIELD2,FIELD3 FROM TABLE1 WHERE 条件表达。 查询2:SELECT FIELD1,FIELD3 FROM ( SELECT FIELD1,FIELD2,FIELD3 FROM TABLE1 WHERE 条件表达。 ) WHERE FIELD2=表达式 。 也就是说你可以将一个查询的结果当成一个视图来使用,只不是在本机上的而已。