我有一个存储过程(动态工作)接受许多参数,一个这样的参数是@lAmountValue,它根据字段Min过滤掉记录 . 我使用下面的where子句根据Min的值过滤掉记录 . 但它正在错误地检索记录,它取出空值,空字符串和我的条件以及大于指定值的值(当使用EqualTo标准搜索时) . 相同的过滤器对数字字段正常工作,但对varchar字段不起作用 . Min是一个varchar字段,表中的列值可以包含Null,空字符串,数字和字符串 . 请帮助找出我的where子句中的错误 .

if @lComparer = 'EqualTo'               
    Set @Query= @Query +'and TN.Min is not null and TN.Min !='' and cast(TN.Min as varchar(30)) = '''' + CAST(@lAmountValue as varchar(30)) + '''' '            
else if @lComparer = 'GreaterThan' 
    Set @Query= @Query +'and TN.Min is not null and TN.Min !='' and cast(TN.Min as varchar(30)) > '''' + CAST(@lAmountValue as varchar(30)) + '''' '    
else if @lComparer = 'LessThan'                                 
    Set @Query= @Query +'and TN.Min is not null and TN.Min !='' and cast(TN.Min as varchar(30)) < '''' + CAST(@lAmountValue as varchar(30)) + '''' '