日期:2014-05-18  浏览次数:20506 次

怎样用UPDATE语句使某个字段的值左移1位?
高位舍去。用*2不行,会报溢出错。
有什么简单的方法?

------解决方案--------------------
SQL code

declare @x int=12345

select cast(substring(cast(@x as varchar),2,100) as int) result

result
-----------
2345

------解决方案--------------------
T-sql里有位操作,先去掉最高位,再乘以2
假设是个8bit的数字,先和0111 1111做位与(&)然后乘2
------解决方案--------------------
smallint 型

update dbo.testtable set test = (test & 127) * 2;


------解决方案--------------------
用了*2,估计是数值类型
------解决方案--------------------
是不是varchar类型的呢?是不是说截取