博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlserver中软件版本号进行字符串对比比较大小
阅读量:4472 次
发布时间:2019-06-08

本文共 1137 字,大约阅读时间需要 3 分钟。

sql 中直接对 1.2.1.57  1.2.12.57  这样的版本号进行对比是有问题的

需要进行下转换处理

把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

 

转载于:https://www.cnblogs.com/cwfsoft/archive/2013/02/17/2914127.html

你可能感兴趣的文章
Android客户端测试点
查看>>
Jquery:怎样让子窗体的div显示在父窗体之上
查看>>
01概率
查看>>
Shell脚本
查看>>
html+css相关笔记(一)
查看>>
基于块流协议保证音频优先发送
查看>>
关于互联网的一些数据
查看>>
数据预处理:独热编码(One-Hot Encoding)
查看>>
python将对象名的字符串类型,转化为相应对象的操作方法
查看>>
【NLP新闻-2013.06.03】New Book Where Humans Meet Machines
查看>>
mongodb安装4.0(rpm)
查看>>
DispatcherServlet的url mapping为“/”时,对根路径访问的处理
查看>>
备忘pwnable.kr 之passcode
查看>>
好久没敲代码了,手有点生——一个小小的时钟
查看>>
运算符 AS和IS 的区别
查看>>
(转)详解C中volatile关键字
查看>>
easyui时的时间格式yyyy-MM-dd与yyyy-MM-ddd HH:mm:ss
查看>>
专题:动态内存分配----基础概念篇
查看>>
Codeforces Round #426 (Div. 2) (A B C)
查看>>
The Most Simple Introduction to Hypothesis Testing
查看>>