¿Qué está haciendo el cursor (^) en la siguiente consulta de SQL Server?¿Qué hace un cursor (^) en una consulta SQL?
SELECT 1^2, 1^3;
el que da los resultados:
3 2
me encontré con este antes de encontrar la función cuadrado().
¿Qué está haciendo el cursor (^) en la siguiente consulta de SQL Server?¿Qué hace un cursor (^) en una consulta SQL?
SELECT 1^2, 1^3;
el que da los resultados:
3 2
me encontré con este antes de encontrar la función cuadrado().
El símbolo de intercalación (^) se traduce en el operador XOR, que es una "exclusiva bit a bit o". En inglés llano significa "cualquiera, pero no ambos". Esto es lo que hace:
decimal 1 = binary 001 decimal 1 = binary 001
XOR XOR
decimal 2 = binary 010 decimal 3 = binary 011
= =
decimal 3 = binary 011 decimal 2 = binary 010
Más información en la página de MSDN para bitwise operations.
3^2
=
000011 (3)
xor
000010 (2)
=
000001 (1)
=
1
Creo que su signo más es engañoso, esto no es agregar, esto es XORear los números. Su configuración funciona para el primer ejemplo de 1^2 pero fallaría en el segundo ejemplo de 1^3 –
@Dave McClelland Gracias por el comentario, yo estaba pensando lo mismo. –
Debo tener un ninja publicado entre su primera publicación y su revisión. Se ve bien ahora :) –