进退两难,网上上查了半天,解决不了,唯一的希望放在了大富翁,各位不要让我失望,谢谢拉!(100分)

  • 主题发起人 主题发起人 anags
  • 开始时间 开始时间
select * from (<br> &nbsp;select 代码,名称 fron 表 where 代码=%s<br> &nbsp;union <br> &nbsp;select &nbsp;top 100 代码,名称 from table where (代码+名称) like '%%s%'<br>)<br>原理就是分两次查询保证完全匹配 
 
to 铁盒子:<br>thank you very much!!谢谢啊!!<br>你的利用“并集”的方法很好,very good!<br>这不由的使我想起了高中所学的知识和那时的时光,百感交集啊!<br>我直接用:(select 代码,名称 fron 表 where 代码=%s)<br> &nbsp;union <br> (select &nbsp;top 100 代码,名称 from table where (代码+名称) like '%%s%)<br>就可以了。<br>另:请教一个小问题:<br>好像是一开始输前几位时速度较快,后即位有其实剩3-4条记录时反倒慢下来,<br>不知何故,请赐教!!
 
这个可能是长度短时,只需遍历表中少数记录就可达到100条,而长度长时需要遍历全表才可能达到100条造成的。
 
存储过程调用的时候,直接用就可以了,还要用ADOQUERY干吗?<br><br> with adoStoredProc1 do<br> &nbsp; begin<br> &nbsp; &nbsp; &nbsp;ProcedureName:='GetFindNo';<br> &nbsp; &nbsp; &nbsp;Parameters.Refresh;<br> &nbsp; &nbsp; &nbsp;Parameters.ParamByName('@findText').Value:=查询条件;<br> &nbsp; &nbsp; &nbsp;Open; &nbsp; &nbsp;//有返回结果用Open, 无结果或以参数返回结果的 用Exec, <br> &nbsp; end;
 
有朋自远方来,不亦乐乎!<br>十分感谢各位的大力帮助。不好意思,开得分少了点,望笑纳。<br>谢谢各位的参与,友谊地久天长,我们永远是朋友。。。。。。。。。。。
 
to levi:<br>感谢你的回复,分少了点,请见谅。
 
后退
顶部