频道栏目
首页 > 资讯 > SQL Server > 正文

sqlserver中软件版本号进行字符串对比比较大小

13-02-19        来源:[db:作者]  
收藏   我要投稿
sqlserver中软件版本号进行字符串对比比较大小
 
sql 中直接对 1.2.1.57  1.2.12.57  这样的版本号进行对比是有问题的
 
需要进行下转换处理  www.2cto.com  
 
把1.2.1.57 转换为00001000020000100057来进行比较
 
[fun_split_version]  用于进行转换的
create function [dbo].[fun_split_version] 
(
@version varchar(50)--版本号
)
returns decimal(20, 0) 
as
begin
-- select [dbo].[fun_split_version]('12312.23344.34234.53441');
--declare @version varchar(50)
--set @version='12.2344.34234.53441'
declare @return decimal(20, 0) 
declare @v_1 varchar(20)
declare @v_2 varchar(20)
declare @v_3 varchar(20)
declare @v_4 varchar(20)
declare @wz1 int,@wz2 int ,@wz3 int,@wz4 int
select @wz1=charindex('.',@version),@wz2=charindex('.',@version,CHARINDEX('.',@version)+1)
,@wz3= charindex('.',@version, charindex('.',@version,CHARINDEX('.',@version)+1)+1)
 
set @v_1=right('0000'+ substring(@version,0,@wz1),5)
set @v_2=right('0000'+ substring(@version,@wz1+1,@wz2-@wz1-1),5)
set @v_3=right('0000'+ substring(@version,@wz2+1,@wz3-@wz2-1),5)
set @v_4=right('0000'+ substring(@version,@wz3+1,len(@version)-@wz3),5)
 
-- select @v_1,@v_2,@v_3,@v_4
 
set @return=convert( decimal(20, 0) ,@v_1+@v_2+@v_3+@v_4)
return @return
end
相关TAG标签
上一篇:六分钟学会创建Oracle表空间的步骤
下一篇:sql2008安装后服务器改名造成名称不一致的解决
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站