位运算符
位运算符在两个表达式之间执行位操作,这两个表达式可以是任意两个整型数据类型的表达式。位运算符的符号及其定义如表4.3所示。
表4.3 位运算符
运 算 符 |
含 义 |
& (按位AND) |
按位与(两个操作数) |
| (按位OR) |
按位或(两个操作数) |
^ (按位互斥OR) |
按位异或(两个操作数) |
~ (按位NOT) |
按位取反(一个操作数) |
位运算符的操作数可以是整型或二进制字符串数据类型中的任何数据类型(但image 数据类型除外),此外,两个操作数不能同时是二进制字符串数据类型中的某种数据类型。
案例:对以下sex字段取反,另一方法case when ...end
DECLARE @tb TABLE (sex bit ,num2 INT) INSERT INTO @tb SELECT 1,1 INSERT INTO @tb SELECT 0,2 INSERT INTO @tb SELECT 0,3 INSERT INTO @tb SELECT 1,4 INSERT INTO @tb SELECT 0,5 INSERT INTO @tb SELECT 1,6 INSERT INTO @tb SELECT 0,7 INSERT INTO @tb SELECT 1,8 INSERT INTO @tb SELECT 0,9 INSERT INTO @tb SELECT 1,10 SELECT sex,'~sex取反'=~sex,'sex^取反'=sex^1, num2 FROM @tb