sql2008 用 max(1.0.0.9)>max(1.0.0.12)怎么解决?

siwuge 2019-11-28 04:08:53
sql2008 一个表里存了程序的版本号和EXE文件,想通过对比版本号来更新,记录有几条,从1.0.0.5至1.0.0.12,但我用 select max(FileVersion) from table_soft 取出的版本号是 1.0.0.9,而不是1.0.0.12,我不想用去掉点的方法,怎么解决?
...全文
75 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_25073223 2019-11-28
  • 打赏
  • 举报
回复
parsename 你学习一下吧 1 .把这些都分解后,然后存于临时表 2. 临时表中依次对每列进行比较得出最大值(当然也可以让列(第一列*10000+第二列*1000+第三列*100+第四列*10+第五列)相加,然后得到一个最大值就是最大版本号)
RINK_1 2019-11-28
  • 打赏
  • 举报
回复
PARSENAME拆分
sxq129601 2019-11-28
  • 打赏
  • 举报
回复
转成ascii看看能不能比较
文盲老顾 2019-11-28
  • 打赏
  • 举报
回复
建立个split函数,然后行转列,然后按列排序
CREATE FUNCTION [dbo].[SplitStr]
(	
	@string nvarchar(max), 
	@symbol nvarchar(10)
)
RETURNS @table TABLE(id int identity,value nvarchar(max))
AS
begin 
	DECLARE @splitlen int
    SET @splitlen=LEN(@symbol)-1
    WHILE CHARINDEX(@symbol,@string)>0
    BEGIN
        INSERT @table(value) VALUES(LEFT(@string,CHARINDEX(@symbol,@string)-1))
        SET @string=STUFF(@string,1,CHARINDEX(@symbol,@string)+@splitlen,'')
    END
    INSERT @table(value) VALUES(@string)
    return
end
declare @tb table(ver nvarchar(20))
insert into @tb values('1.0.0.5'),('1.0.0.6'),('1.0.0.8'),('1.0.0.9'),('1.0.0.10'),('1.0.0.12')

select * 
from @tb
cross apply (
	select convert(int,[1]) as v1,convert(int,[2]) as v2,convert(int,[3]) as v3,convert(int,[4]) as v4
	from (
		select * from master.dbo.splitStr(ver,'.')
	) a
	pivot(max(value) for id in ([1],[2],[3],[4])) p
) b
order by v1 desc,v2 desc,v3 desc,v4 desc



(6 行受影响)
ver                  v1          v2          v3          v4
-------------------- ----------- ----------- ----------- -----------
1.0.0.12             1           0           0           12
1.0.0.10             1           0           0           10
1.0.0.9              1           0           0           9
1.0.0.8              1           0           0           8
1.0.0.6              1           0           0           6
1.0.0.5              1           0           0           5

(6 行受影响)

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧