&&-> and
if ((@HQCountry <> '') and (@HQCity <> '')) 

解决方案 »

  1.   

    if ((@HQCountry <> '') && (@HQCity <> '')) 
    if语句是逻辑判断语句,你这一句返回不了FALSE或TRUE啊
      

  2.   

    if ((isnull(@HQCountry,'') <> '') and (isnull(@HQCity,'') <> '')) 
      

  3.   

    if @HQCountry <> '' and @HQCity <> ''
      

  4.   

    逻辑运算符 (Transact-SQL)
    逻辑运算符对某些条件进行测试,以获得其真实情况。逻辑运算符和比较运算符一样,返回带有 TRUE、FALSE 或 UNKNOWN 值的 Boolean 数据类型。
    运算符  含义  
    ALL 如果一组的比较都为 TRUE,那么就为 TRUE。 
    AND 如果两个布尔表达式都为 TRUE,那么就为 TRUE。
    ANY 如果一组的比较中任何一个为 TRUE,那么就为 TRUE。
    BETWEEN 如果操作数在某个范围之内,那么就为 TRUE。
    EXISTS  如果子查询包含一些行,那么就为 TRUE。 
    IN 如果操作数等于表达式列表中的一个,那么就为 TRUE。
    LIKE 如果操作数与一种模式相匹配,那么就为 TRUE。
    NOT  对任何其他布尔运算符的值取反。 
    OR  如果两个布尔表达式中的一个为 TRUE,那么就为 TRUE。
    SOME  如果在一组比较中,有些为 TRUE,那么就为 TRUE。