Операции переворачивания битов в T-SQL
У меня есть битовое поле int в моей базе данных. Обычно я управляю этим через код C#, но теперь мне нужно немного перевернуть маску, используя T-SQL
Как мне сделать следующее:
Бит, который я хочу перевернуть: 1 << 8 (256)
Значение маски перед переворачиванием: 143
Значение маски после переворачивания: 399
Это можно сделать без битовых операторов, которых нет в T-SQL, верно?
2 ответа
Решение
Используйте XOR:
SELECT value ^ 256
Так что в вашем случае, SELECT 143 ^ 256
действительно вернет 399. Если вы хотите передать также и показатель степени:
SELECT value ^ POWER(2, power)
2009-07-10 15:20