declare @table1 table ( id int, name nvarchar(50), 表现分 decimal(10,1) )insert into @table1 select 1,'王小二',-85 union all select 23,'章小品',90 union all select 33 ,'郭培育',75 union select 44 ,'exception',60 select * from @table1 update @table1 set 表现分 =abs(表现分)select * from @table1
这样处理效率更高: update tablename set fieldname=-fieldname where fieldname<0再耍几个更不一样的: update tablename set fieldname=abs(fieldname) where fieldname<0 update tablename set fieldname=sqrt(fieldname*fieldname) update tablename set fieldname=right(convert(varchar,fieldname),len(convert(varchar,fieldname)-1) where fieldname<0 算法不同而已,效率也不一样.
(
id int,
name nvarchar(50),
表现分 decimal(10,1)
)insert into @table1
select 1,'王小二',-85 union all
select 23,'章小品',90 union all
select 33 ,'郭培育',75 union
select 44 ,'exception',60
select * from @table1
update @table1
set 表现分 =abs(表现分)select * from @table1
select abs(-31.27)
varchar的话用replace,也可以转换成整型再ABS
整型的话用ABS
楼上都正确
接分
update tablename set fieldname=-fieldname where fieldname<0再耍几个更不一样的:
update tablename set fieldname=abs(fieldname) where fieldname<0
update tablename set fieldname=sqrt(fieldname*fieldname)
update tablename set fieldname=right(convert(varchar,fieldname),len(convert(varchar,fieldname)-1) where fieldname<0
算法不同而已,效率也不一样.
返回给定数字表达式的绝对值
set 列名= abs(列名)
where
列名<0