SQL并没有位移运算,代码是可以实现,但不具备位移的性能优势,所以不建议SQL处理位移问题:
declare @i int = 44444 -- integer
declare @n int = 16 -- shift
-- Function
declare @m int,@s int
select @n%=32,@m=power(2,31-@n),@s=@i&@m,@i&=@m-1,@i*=power(2.,@n)
if(@s>0)set @i|=0x80000000
select @i -- -1382285312