首先,目前这个项目的查询是有存过来完成的。目前遇到这样一个问题:怎样实现由页面选择 >、< 或 = 某个字段进行模糊查询.具体点就是数据库中怎么处理?现在该项目用的是oracle。这个问题困了我两天了,希望大虾们帮解决一下!

解决方案 »

  1.   

    这个需要使用拼接SQL语句来完成.
      

  2.   

    可以通过传参的方式加动态SQL语句在存储过程中来处理,> < =等做为一个参数,某字段做为另外一个参数。然后写出动态的SQL语句,当然也可以在应用程序中通过调节判断直接拼接出SQL语句。
      

  3.   

    还是不太明白你的需求,
    你是想问怎么把‘>/</=’这三种字符传到数据库中来作为模糊查询的条件,还是什么意思?
      

  4.   


    --不知道我理解的对不对
    把你画面上的>/</=号附上一个values值,(比如1,2,3)
    然后通过参数传入到你的存储过程中,在存储过程中判断
    if values = 1 then
     xxx > xxx
    end if...
      

  5.   

    谢谢各位大侠的提醒!首先我不清楚这个“动态sql”,我是这样理解的是不是根据页面传的参数比如 "0"代表">","1"代表“<”,“2”代表“=”;然后再去查一张专门用来维护一些sql语句的表来进行查询?其次 “可以用 替代符号” 在存过里面怎样实现呢?比如说在存过里面的部分段:
    CREATE PROCEDURE getPayInfo(
    A  in varchar2--这个就是从页面传来的值是("0","1","2">>">","<","=")
    )
    beigin
        open for cur--上面定义的游标
             select * from ta200021
         where
           1=1
           and
           if a = '0' ta20002101 > 2000 end if;
           if a = '1' ta20002101 < 2000 end if;
           if a = '2' ta20002101 = 2000 end if;
    end;这样编辑不通过!!不知我理解对不对?
    最后 "当然也可以在应用程序中通过调节判断直接拼接出SQL语句" 目前不是在应用层拼接sql.