Sql 查询二进制位字段
我正在存储在SQL server数据库中执行的源文件中的哪些行。在我的查询中,我想确定两个文件的执行是否重叠;e、 g Line Run1 Run2 1 x 2 x x 3 4 xSql 查询二进制位字段,sql,binary,bit-manipulation,Sql,Binary,Bit Manipulation,我正在存储在SQL server数据库中执行的源文件中的哪些行。在我的查询中,我想确定两个文件的执行是否重叠;e、 g Line Run1 Run2 1 x 2 x x 3 4 x 这将比较(选择的)运行与其他运行位字段。理想情况下,我希望对记录组(一个组件的行覆盖率数据)的位字段进行排序,然后对另一组记录进行排序,而不是排序。我可以计算结果中的1位,这将是一组测试中包含的行数,而不是另一组测试中包含的行数 如果行数不是太多,您可以简单地将varbinary强制
这将比较(选择的)运行与其他运行位字段。理想情况下,我希望对记录组(一个组件的行覆盖率数据)的位字段进行排序,然后对另一组记录进行排序,而不是排序。我可以计算结果中的1位,这将是一组测试中包含的行数,而不是另一组测试中包含的行数 如果行数不是太多,您可以简单地将varbinary强制转换为bigint以进行逐位比较 要获取执行第1行的所有文件,请执行以下操作:
where (cast(runCoverage as bigint) & 1) > 0
或执行第1行旁边任何一行的所有文件
where (cast(runCoverage as bigint) & ~1) > 0
如果行数较高,则可以使用substr生成一些辅助函数以获得适当的位。再说一遍,也许我完全误解了这个问题 很高兴看到一个不怕位屏蔽的sql开发人员。我的位字段表示文件,可以是数千行。
where (cast(runCoverage as bigint) & ~1) > 0