簡體   English   中英

如何在SQL Server中翻轉一下?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM