本帖最后由 subendong 于 2010-09-04 09:52:45 编辑

解决方案 »

  1.   

    比如:
    8*10*12/14
    我在前台查询页面有长N-N宽N-N高N-N6个文本框。
    我搜索长6-9,符合8,OK,返回1,我搜索高13-15,符合12/14,也返回1(斜杠代表或).
    就这个意思,不知道说到这个份上,你们能明白吗?
      

  2.   

    [dbo].[F_Compare](@c nvarchar(Max), @small float, @big float, @int int)
    [dbo].[F_Split](@c nvarchar(Max),@split nvarchar(2), @int int)
    [dbo].[F_CFilter](@c nvarchar(100))
    总共是三个函数F_CFilter主要功能是过滤非数字字符串F_Split功能是:
    F_Split('8*10*12/14','*',1)那么获取8;F_Split('8*10*12/14','*',2)那么获取10;F_Split('8*10*12/14','*',3)那么获取12/14F_Compare功能是判断F_Split之后的字符是否带有-或者/符号,(/符号代表或,-符号代表多少到多少),然后做比较。
      

  3.   

    and dbo.F_Compare(ProductSpecification,10,50,1) = 1
    这种查询条件不能使用索引查找,只能表描述。
    而且函数判断这么复杂。想优化的话,重新设计表结构,按第一范式来。
      

  4.   

    就是把Specification(L*W*H)这个字段分成三个字段是吧?L、W、H。