在SQL中使用按位逻辑查找整数值

时间:2014-10-23 12:31:24

标签: sql-server bit-manipulation

我正在将旧数据迁移到新的数据库结构中,我需要找出SQL中3个BIT字段的总int。

例如,

(Col A = 1,Col B = 2,Col C = 4

Col A, Col B, COL C
 0      0       0   = 0
 1      0       0   = 1 
 0      1       0   = 2
 0      0       1   = 4
 1      1       1   = 7

我在SQL中试过

SELECT Col A & 1, Col B & 2 

但不完全确定该逻辑是否有效......

提前致谢

1 个答案:

答案 0 :(得分:3)

只需将列乘以它们各自的2的幂。假设ColA是最不重要的位:

SELECT ColA + ColB * 2 + ColC * 4 FROM MyTable;

SqlFiddle