SQL语句问题,高手速度进! select * from Menu where @role & RoleSet = @role 这个 @role 是一个存储过程参数 RoleSet 是一个字段名我想问一下上面这个查询语句是什么意思 主要是 @role & RoleSet = @role 中的 & 是什么意思 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 &(按位 AND)在两个整型值之间执行按位逻辑与运算。语法expression & expression参数expression是任何有效的 Microsoft® SQL Server™ 表达式,必须由整数数据类型分类中的任何数据类型组成。expression 是经过处理并转换为二进制数字以便进行位运算的整型参数。结果类型如果输入值为 int,则返回 int;如果输入值为 smallint,则返回 smallint;或者如果输入值为 tinyint,则返回 tinyint。注释通过从两个表达式取对应的位,位运算符 & 在两个表达式之间执行按位逻辑与运算。只有当输入表达式中两个位(正在被解析的当前位)的值都为 1 时,结果中的位才被设置为 1;否则,结果中的位被设置为 0。位运算符 & 只可以用在具有整型数据类型分类的表达式上。如果左右表达式的整型数据类型不同(例如,左边 expression 的数据类型是 smallint,右边 expression 的数据类型是 int),那么将较小的数据类型的参数转换为较大的数据类型。在该示例中,数据类型为 smallint 的 expression 被转换为 int 数据类型。 还是没理解上面那条SQL语句,能跟我讲解一下吗? 具体是怎么移的,怎么运算的? @role & RoleSet = @role说明RoleSet转换成二进制后全部位都是1,比如31,转换成二进制是11111,全部位都是1全部位是1的十进制数是:2的N次方-1所以查询所有RoleSet为2的N次方-1的记录 如果照你这么说 9 跟 13 转换成二进制并不都是1啊 我那个条件 写成 8 & RoleSet = 8 这样 RoleSet 里面 所有值为 9 跟 13 的记录都会查出来 为啥呢 帮忙 貌似是连接问题 处男贴 sql语句问题 求解 sql值的显示问题 求一SQL语句。 SQL2008express版,通过程序调用安装 提个简单的问题 WIN7 无法安装 SQLSERVER2008 如何写这个sql语句,,,在线等待??? 备份数据库的 进程被选择为死锁牺牲品时 如何对这2张表进行左联查询 如何知道SQL Server 2008 的处理器许可是多少个啊?
在两个整型值之间执行按位逻辑与运算。语法
expression & expression参数
expression是任何有效的 Microsoft® SQL Server™ 表达式,必须由整数数据类型分类中的任何数据类型组成。expression 是经过处理并转换为二进制数字以便进行位运算的整型参数。结果类型
如果输入值为 int,则返回 int;如果输入值为 smallint,则返回 smallint;或者如果输入值为 tinyint,则返回 tinyint。注释
通过从两个表达式取对应的位,位运算符 & 在两个表达式之间执行按位逻辑与运算。只有当输入表达式中两个位(正在被解析的当前位)的值都为 1 时,结果中的位才被设置为 1;否则,结果中的位被设置为 0。位运算符 & 只可以用在具有整型数据类型分类的表达式上。如果左右表达式的整型数据类型不同(例如,左边 expression 的数据类型是 smallint,右边 expression 的数据类型是 int),那么将较小的数据类型的参数转换为较大的数据类型。在该示例中,数据类型为 smallint 的 expression 被转换为 int 数据类型。
说明RoleSet转换成二进制后全部位都是1,
比如31,转换成二进制是11111,全部位都是1
全部位是1的十进制数是:2的N次方-1
所以查询所有RoleSet为2的N次方-1的记录
如果照你这么说 9 跟 13 转换成二进制并不都是1啊 我那个条件 写成 8 & RoleSet = 8 这样 RoleSet 里面 所有值为 9 跟 13 的记录都会查出来
为啥呢