我正試圖在SQL Server中執行一個按位NOT操作。我想要做這樣的事情:如何在SQL Server中翻轉一點?
update foo
set Sync = NOT @IsNew
注:我開始寫這一點,並找到了答案,以我自己的問題之前,我完成了。我仍然希望與社區分享,因爲這篇文檔在MSDN上缺少(直到我將它添加到社區內容中)。
我正試圖在SQL Server中執行一個按位NOT操作。我想要做這樣的事情:如何在SQL Server中翻轉一點?
update foo
set Sync = NOT @IsNew
注:我開始寫這一點,並找到了答案,以我自己的問題之前,我完成了。我仍然希望與社區分享,因爲這篇文檔在MSDN上缺少(直到我將它添加到社區內容中)。
是的,〜運營商將工作。
update foo
set Sync = [email protected]
位非:〜
位與:&
位或:|
按位異或:^
缺少MSDN? http://msdn.microsoft.com/en-us/library/ms173468(SQL.90).aspx
〜:執行上一個整數值逐位邏輯非運算。 〜按位運算符爲表達式執行按位邏輯NOT,依次取每位。如果表達式的值爲0,則結果集中的位被設置爲1;否則,結果中的位被清除爲0值。換句話說,其中一個變爲零,零變爲1。
爲了完整起見:
SELECT b, 1 - b
FROM
(SELECT cast(1 AS BIT) AS b
UNION ALL
SELECT cast(0 AS BIT) AS b) sampletable
我讀這錯了,我想......是想告訴你,你不能在SQL Server中的Uturn ...:P – Codewerks 2008-10-05 00:07:39
另一個文章:http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/how-to-flip-a-bit-in-sql-server-by-using – 2010-09-29 19:23:20