我有一个存储过程(动态工作),它接受许多参数,一个这样的参数是@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)) + '''' '