sofas - ¿Cómo puedo voltear un poco en SQL Server?
sofas fama precios (4)
Estoy intentando realizar un NOT bit a bit en SQL Server. Me gustaría hacer algo como esto:
update foo
set Sync = NOT @IsNew
Nota: Empecé a escribir esto y descubrí la respuesta a mi propia pregunta antes de terminar. Todavía quería compartir con la comunidad, ya que esta documentación faltaba en MSDN (hasta que también la agregué al contenido de la comunidad).
Sí, el ~ operador funcionará.
update foo
set Sync = ~@IsNew
En aras de la exhaustividad:
SELECT b, 1 - b
FROM
(SELECT cast(1 AS BIT) AS b
UNION ALL
SELECT cast(0 AS BIT) AS b) sampletable
¿Falta en MSDN? http://msdn.microsoft.com/en-us/library/ms173468(SQL.90).aspx
~: Realiza una operación lógica NOT bit a bit en un valor entero. El operador bit a bit realiza una lógica NO bit a bit para la expresión, tomando cada bit por turno. Si la expresión tiene un valor de 0, los bits en el conjunto de resultados se establecen en 1; de lo contrario, el bit en el resultado se borra a un valor de 0. En otras palabras, unos se cambian a ceros y los ceros se cambian a unos.
NO a nivel de bit: ~
Bitwise AND: &
Bitwise OR: |
Bitwise XOR: ^