zoukankan      html  css  js  c++  java
  • sqlserver中软件版本号进行字符串对比比较大小

    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

  • 相关阅读:
    cocos2d3.8.1 使用prebuild提升发布android速度
    AS3条件编译
    Box2d FilterData
    旋转关节(Revolute Joint)
    线关节(Line Joint)
    平移关节(Prismatic Joint)
    滑轮关节(b2PulleyJoint)
    PAT Basic 1043 输出PATest (20 分)
    PAT Basic 1042 字符统计 (20 分)
    PAT Basic 1039 到底买不买 (20 分)
  • 原文地址:https://www.cnblogs.com/cwfsoft/p/2914127.html
Copyright © 2011-2022 走看看