我在做检索时,在不确定检索的条件时,怎么写SQL? 条件有时候可能没有,有事后可能很多,
举个例子:我爱中华人民共和国---》可能会解析成:我唉中华 、中华人民、共和国或者 中华人民共和国!
在线等待1!! 

解决方案 »

  1.   

    是要形成动态的SQL语句还是要模糊查询?
      

  2.   

    你可以用SQL中 LIKE 与一些比哪百分号之类的合并起来一起使用
      

  3.   

    这个用动态SQL实现应该比较不错, 把条件做为参数
    v_sql varchar2(32767) := 'select * from table t'|| 'where t.id = '||参数1....
    execute immediate v_sql into v_变量....
    ....
      

  4.   

    我暂时没明白楼主的意思,不过可以试试模糊查询。
    字段名 like '%中国人民共和国%'这种。
      

  5.   

    如果是Oracle10g,可以用正则表达式,但是不知道下面的例子是否能够满足楼主的需要create table t (c varchar2(20));
    insert into t values('我爱中华人民共和国');
    commit;select * from t where regexp_like(c,'我爱中华');
    select * from t where regexp_like(c,'中华人民');
    select * from t where regexp_like(c,'共和国');
    select * from t where regexp_like(c,'中华人民共和国');
      

  6.   

    不好意思,我说的不清楚,现在我在重复一下我的意思:
    假设字段里面的值是:我爱中华人民共和国。
    我的要求,我在一句话中如:你爱中华人民吗?,
    通过各种方法,我能把上句话(你爱中华人民吗?)解析成【你爱,中华人民】两个词,其中含有【中华人民】,那我就要把字段
    中包含【中华人民】的字段全查出来。
    对于一句话,可能会解析成多个单词,但是每个单词都有可能在字段中包含,那我就想都检索出来,就是不知道SQl如何书写!我现在已经实现,使用的like,用拼接字符串的方法。但不知道有没有其他简单的方法!