日期:2014-05-17  浏览次数:20513 次

sql中部分字符怎么转成数值加1?
比如有的字符型字段,存了个值内容:  '11-15'  ,怎么让前面的数值加1,让他显示成 '12-15'呢?

------解决方案--------------------

declare @s varchar(10)
set @s='111-15'
select ltrim(left(@s,charindex('-',@s)-1)+1)+right(@s,len(@s)-(charindex('-',@s)-1))
/*
112-15
*/

------解决方案--------------------
引用:
不好意思,没看清,我是说这种写法是不是太长了?是不是还有更精简的写法


如果是数字长度固定是2位的,可以使用上面简单的写法,

如果长度不固定,那就简单不了了:

select cast(left('11-15',charindex('-','11-15')-1)+1 as varchar) +
       right('11-15',len('11-15')-charindex('-','11-15')+1)

------解决方案--------------------

--不能再短了
declare @str varchar(10)
 
set @str='11-15'
 
select rtrim(Parsename(replace(@str,'-','.'),2)+1)+'-'+Parsename(replace(@str,'-','.'),1)