[英]How do I flip a bit in SQL Server?
我正在嘗試在SQL Server中執行按位NOT。 我想做這樣的事情:
update foo
set Sync = NOT @IsNew
注意:在我結束之前,我開始寫這個並找到我自己問題的答案。 我仍然想與社區分享,因為MSDN上缺少這篇文檔(直到我將其添加到社區內容中)。
是的,〜運算符將起作用。
update foo
set Sync = ~@IsNew
按位NOT:〜
按位AND:&
按位OR:|
按位異或:^
缺少MSDN? http://msdn.microsoft.com/en-us/library/ms173468(SQL.90).aspx
〜:對整數值執行按位邏輯NOT運算。 〜按位運算符對表達式執行按位邏輯NOT,依次取每個位。 如果expression的值為0,則結果集中的位設置為1; 否則,結果中的位被清除為值0.換句話說,將1更改為零,將零更改為1。
為了完整起見:
SELECT b, 1 - b
FROM
(SELECT cast(1 AS BIT) AS b
UNION ALL
SELECT cast(0 AS BIT) AS b) sampletable
〜運算符只適用於BIT,
嘗試:~CAST(@IsNew AS BIT)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.