假设有一个表T如下:
   字段   A     B     C     D
以下为值:1     x     Y     Z
         2     xx    2     3
         3     y    2.1   3.1
         4     Z    20     10
各字段均为VARCAHR类型,有查询条件:B、C模糊匹配,为空则忽略条件;C>3,要求转化为字符型比较,不能转换的值不显示。各个条件之间有“AND”和“OR”的两种关系,由用户选择。
如何用存储过程实现查询,谢谢!

解决方案 »

  1.   

    是我没有说清问题,字段为A、B、C、D,下面是对应字段的值,比如我想的查找条件为B模糊匹配‘x’,上面能够匹配到1、2两条记录;若要求C>1,由于C列对应的值有Y、2、2.1、20,我想要的结果是2、2.1、10;各个条件之间有“AND”和“OR”的两种关系,即有B LIKE '%'+@VAR+'%' AND C>1 和B LIKE '%'+@VAR+'%' AND C>1两种情况,选择AND或者OR由页面传过来的变量比如@opt决定。
      

  2.   

    错了,上面第二个红词AND应改为OR
      

  3.   

    select * from t where isnull(b,c)=c or isnull(c,b)=b --为null时省略方式--判断isnumeric是否为数字时.圆点也是有效的:
    select * from t where case when isnumeric(b)=1 and isnumeric(c)=1 and c>c then ....