declare @a int
declare @b int
set @a=5
set @b=11
select @a=@a^@b,@b=@b^@a,@a=@a^@b
print '@a='+convert(varchar, @a)
print '@b='+convert(varchar,@b)
请让我详细解释一下。
答案 0 :(得分:1)
^
是bitwise exclusive or运算符。
我现在没有正常运行的SQLServer设置,而SQLFiddle似乎对于执行此查询有些模糊不清,但是,如果我们从左到右解释查询:
@a=@a^@b=5^11=14
@b=@b^@a=11^14=5
@a=@a^@b=14^5=11
简而言之,这是一个用于在不使用第三个变量的情况下切换两个整数值的技巧。