注册 登录
编程论坛 SQL Server论坛

求SQL语句

gaoshuli12 发布于 2011-11-28 18:10, 658 次点击
a 在 101-110 则a=a-10
a在201-210 则a=a-10
a在301-310 则a=a-10
......
a在1901-1910 则a=a-10

靠近整百的十位个位小于等于10的 则减10
例:401 则 391
410  则 390
411 则 411
415 则 415
怎么写
2 回复
#2
png2011-11-30 22:49
类似这样?

update table_name
set    a = a -10
Where  cast(right(a, 2) as integer) < 11
#3
tangyunzhong2011-12-01 09:09
以下是引用gaoshuli12在2011-11-28 18:10:13的发言:

a 在 101-110 则a=a-10
a在201-210 则a=a-10
a在301-310 则a=a-10
......
a在1901-1910 则a=a-10

靠近整百的十位个位小于等于10的 则减10
例:401 则 391
410  则 390
411 则 411
415 则 415
怎么写
你的a是什么数据类型,要是整数类型的话就不需要转换,方法如下:
select (case when a%100<=10 then a-10 else a end) as a,* from table

是要a不是整数类型,你可以转换一下就可以了!
1