栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL Server中的版本号排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL Server中的版本号排序

实施大脑解决方案

Declare @tblVersion table(VersionNumber varchar(100))  Insert into @tblVersion Values('1.3.1')  Insert into @tblVersion Values('1.3.2.5')  Insert into @tblVersion Values('1.4.1.7.12')  Insert into @tblVersion Values('1.4.11.14.7')  Insert into @tblVersion Values('1.4.3.109.1')  Insert into @tblVersion Values('1.4.8.66') --Select * From @tblVersion ;With CTE AS (    Select         Rn = Row_Number() Over(Order By (Select 1))        ,VersionNumber    From @tblVersion),CTESplit AS(    SELECt  F1.Rn, F1.VersionNumber, VersionSort =       Case    When Len(O.VersionSort) = 1 Then '000' + O.VersionSort   When Len(O.VersionSort) = 2 Then '00' + O.VersionSort   When Len(O.VersionSort) = 3 Then '0' + O.VersionSort   When Len(O.VersionSort) = 4 Then O.VersionSort      End    FROM    (        SELECt *,        cast('<X>'+replace(F.VersionNumber,'.','</X><X>')+'</X>' as XML) as xmlfilter from CTE F    )F1 CROSS APPLY (     SELECt fdata.D.value('.','varchar(50)') as VersionSort      FROM f1.xmlfilter.nodes('X') as fdata(D)) O ) ,CTE3 As(Select         --Rn         --,        VersionNumber        ,SortableVersion =       Stuff(   (Select '.' + Cast(VersionSort As Varchar(100))       From CTESplit c2       Where c2.Rn = c1.Rn       For Xml Path('')),1,1,'')From CTESplit c1Group By c1.Rn,c1.VersionNumber)Select VersionNumberFrom CTE3Order By SortableVersion


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420157.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号