两个变量 @i @j
现在要求相与 @i&@j
这个在if语句中怎么写(作为if的条件)

解决方案 »

  1.   

    &(按位 AND)
    在两个整型值之间执行按位逻辑与运算。语法
    expression & expression参数
    expression是任何有效的 Microsoft® SQL Server™ 表达式,必须由整数数据类型分类中的任何数据类型组成。expression 是经过处理并转换为二进制数字以便进行位运算的整型参数。结果类型
    如果输入值为 int,则返回 int;如果输入值为 smallint,则返回 smallint;或者如果输入值为 tinyint,则返回 tinyint。注释
    通过从两个表达式取对应的位,位运算符 & 在两个表达式之间执行按位逻辑与运算。只有当输入表达式中两个位(正在被解析的当前位)的值都为 1 时,结果中的位才被设置为 1;否则,结果中的位被设置为 0。位运算符 & 只可以用在具有整型数据类型分类的表达式上。如果左右表达式的整型数据类型不同(例如,左边 expression 的数据类型是 smallint,右边 expression 的数据类型是 int),那么将较小的数据类型的参数转换为较大的数据类型。在该示例中,数据类型为 smallint 的 expression 被转换为 int 数据类型。示例
    下面的示例创建一个具有 int 数据类型的表以显示值,并将该表放入一行中。USE master
    GO
    IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
          WHERE TABLE_NAME = 'bitwise')
       DROP TABLE bitwise
    GO
    CREATE TABLE bitwise

     a_int_value int NOT NULL,
     b_int_value int NOT NULL
    )
    GO
    INSERT bitwise VALUES (170, 75)
    GO下面的查询在 a_int_value 列和 b_int_value 列上执行按位 AND 运算。USE MASTER
    GO
    SELECT a_int_value & b_int_value
    FROM bitwise
    GO下面是结果集:----------- 
    10          (1 row(s) affected)170(a_int_value 或 A,如下所示 )的二进制表示为 0000 0000 1010 1010。75(b_int_value 或 B,如下所示)的二进制表示为 0000 0000 0100 1011。在这两个值之间执行按位 AND 运算所产生的二进制结果是 0000 0000 0000 1010,即十进制数 10。(A & B)
             0000    0000 1010 1010
             0000 0000 0100 1011
             -------------------
             0000 0000 0000 1010
      

  2.   

    楼主哪个“与”?
    不是按位来的话,用这个
    (if a and b)