if IsNULL(@strInvCCode1,'')<>'' and IsNULL(@strInvCCode2,'')<>'' --都不为空值的情况 Begin --根据大小关系,确定 between..and..中两个参数的位置 If @strInvCCode1 <= @strInvCCode2 Begin Set @sExtInvFilter = ' And (LEFT(Inventoryclass.cInVCCode,Len(' + @strInvCCode1 + ')) Between ''' + @strInvCCode1 +''' and ''' + @strInvCCode2 +''')' --Select @sExtInvFilter --Debug End Else If @strInvCCode1 > @strInvCCode2 Begin Set @sExtInvFilter = ' And (LEFT(Inventoryclass.cInVCCode,Len(' + @strInvCCode1 + ')) Between ''' + @strInvCCode2 +''' and ''' + @strInvCCode1 +''')' --Select @sExtInvFilter --Debug End End --接着第一个IF 语句的ELSE,当其中一个为空值时,SQL的连接组成情况 else if IsNULL(@strInvCCode1,'')<>'' and IsNULL(@strInvCCode2,'')='' Set @sExtInvFilter =' And (InventoryClass.cInvCCode Like ''' +@strInvCCode1 +'%'')' else if IsNULL(@strInvCCode1,'')='' and IsNULL(@strInvCCode2,'')<>'' Set @sExtInvFilter =' And (InventoryClass.cInvCCode Like ''' +@strInvCCode2 +'%'')'
这是一段根据@strInvCCode1 和 @strInvCCode2 两个变量得到数据过滤条件的SQL语句, 大致注解如下:IF @strInvCCode1 和 @strInvCCode2 两个都不为NULL 则进一步做判断 begin if @strInvCCode1 <= @strInvCCode2 得到 between 1 and 2 if @strInvCCode1 > @strInvCCode2 得到 between 2 and 1 end elseif @strInvCCode1 不为空,@strInvCCode2为空 得到 LIKE 1 elseif @strInvCCode1 为空,@strInvCCode2不为空 得到 LIKE 2
Begin
--根据大小关系,确定 between..and..中两个参数的位置
If @strInvCCode1 <= @strInvCCode2
Begin
Set @sExtInvFilter = ' And (LEFT(Inventoryclass.cInVCCode,Len(' + @strInvCCode1 + ')) Between '''
+ @strInvCCode1 +''' and ''' + @strInvCCode2 +''')'
--Select @sExtInvFilter --Debug
End
Else If @strInvCCode1 > @strInvCCode2
Begin
Set @sExtInvFilter = ' And (LEFT(Inventoryclass.cInVCCode,Len(' + @strInvCCode1 + ')) Between '''
+ @strInvCCode2 +''' and ''' + @strInvCCode1 +''')'
--Select @sExtInvFilter --Debug
End
End
--接着第一个IF 语句的ELSE,当其中一个为空值时,SQL的连接组成情况
else if IsNULL(@strInvCCode1,'')<>'' and IsNULL(@strInvCCode2,'')=''
Set @sExtInvFilter =' And (InventoryClass.cInvCCode Like ''' +@strInvCCode1 +'%'')'
else if IsNULL(@strInvCCode1,'')='' and IsNULL(@strInvCCode2,'')<>''
Set @sExtInvFilter =' And (InventoryClass.cInvCCode Like ''' +@strInvCCode2 +'%'')'
大致注解如下:IF @strInvCCode1 和 @strInvCCode2 两个都不为NULL 则进一步做判断
begin
if @strInvCCode1 <= @strInvCCode2
得到 between 1 and 2
if @strInvCCode1 > @strInvCCode2
得到 between 2 and 1
end
elseif @strInvCCode1 不为空,@strInvCCode2为空
得到 LIKE 1
elseif @strInvCCode1 为空,@strInvCCode2不为空
得到 LIKE 2