programing

SQL Server에서 어떻게 조금 뒤집습니까?

fastcode 2023. 4. 25. 23:12
반응형

SQL Server에서 어떻게 조금 뒤집습니까?

SQL Server가 아닌 비트로 수행하려고 합니다.저는 다음과 같은 일을 하고 싶습니다.

update foo
set Sync = NOT @IsNew

참고: 저는 이 글을 쓰기 시작했고 글을 끝내기 전에 제 질문에 대한 답을 찾았습니다.MSDN에는 이 문서가 부족했기 때문에 커뮤니티 콘텐츠에 추가하기 전까지는 커뮤니티와 공유하고 싶었습니다.

예, ~ 연산자가 작동합니다.

update foo
set Sync = ~@IsNew

비트별 안 함: ~

비트 AND: &입니다.

비트 OR: |

비트 단위 XOR: ^

MSDN이 부족합니까? http://msdn.microsoft.com/en-us/library/ms173468(SQL.90).aspx

~: 정수 값에 대해 비트 논리 NOT 연산을 수행합니다.~ 비트 연산자는 식에 대해 비트 논리 NOT를 수행하여 각 비트를 차례로 가져옵니다.식에 값이 0이면 결과 세트의 비트가 1로 설정되고, 그렇지 않으면 결과의 비트가 0으로 지워집니다.즉, 1은 0으로 바뀌고 0은 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)입니다.

언급URL : https://stackoverflow.com/questions/171173/how-do-i-flip-a-bit-in-sql-server 입니다.

반응형