27 October 2014

How to Flip Value of Bit Field in SQL Server

DECLARE @field1 BIT
DECLARE @field2 BIT

SET @field1 = 0
SET @field2 = 1

SELECT @field1 Field1, @field2 Field2

-- Method zero
SELECT @field1 = ~@field1, @field2 = ~@field2
SELECT @field1 Field1, @field2 Field2

-- Method one
SELECT @field1 = 1^@field1, @field2 = 1^@field2
SELECT @field1 Field1, @field2 Field2

-- Method 2
SELECT @field1 = 1-@field1, @field2 = 1-@field2
SELECT @field1 Field1, @field2 Field2

-- Method 3
SELECT @field1 = (1+@field1)%2, @field2 = (1+@field2)%2
SELECT @field1 Field1, @field2 Field2

-- Method 4
SELECT @field1 = ABS(@field1-1), @field2 = ABS(@field2-1)
SELECT @field1 Field1, @field2 Field2


Questi sono i risultati:

Field1 Field2
------ ------
0      1

Field1 Field2
------ ------
1      0

Field1 Field2
------ ------
0      1

Field1 Field2
------ ------
1      0

Field1 Field2
------ ------
0      1

Field1 Field2
------ ------
1      0



Trovato qui e qui.