Я хотел бы выполнить простое обновление с битовым переключением на SQL со следующим кодом.Бит мудрая операция по поплавковому значению на SQL Server 2016
UPDATE table SET BoolFields = BoolFields + 1.0 WHERE BoolFields & 1.0 <> 1.0
Однако, когда я запускаю это на Management Studio, я получаю
Операнда типа данных с плавающей точкой является недопустимой для оператора '&'.
Может кто-нибудь подскажет исправить эту проблему, не изменяя BooFields от float до какого-либо другого типа?
EDIT
Некоторые комментируя мое состояние было не ясно, так редактирования.
Условие заключается в том, что я хочу проверить и увидеть, отмечен ли определенный бит как один. Так моя фактическая линия может быть BoolFields & 128.0 <> 128.0
затем
Я хотел бы SET BoolFields = BoolFields + 128.0
так что я просто хотел бы флаг логическое значение, только если он не помечен как 1.
это поможет, если вы сможете определить, какие условия должны выполнять 'update'? это непонятно из вопроса. –
Пожалуйста, объясните, чего вы хотите достичь. Это пахнет [XY-проблемой] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) ... – Shnugo
Побитово на *** плавать ***? Почему вы используете float * вообще *, но особенно при хранении бит? –