我有一个表,存储的版本如下
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
VersionNumber
1.3.1
1.3.2.5
1.4.1.7.12
1.4.11.14.7
1.4.3.109.1
1.4.8.66
我的要求是我需要对它们进行排序,以便输出为
VersionNumber
1.3.1
1.3.2.5
1.4.1.7.12
1.4.3.109.1
1.4.8.66
1.4.11.14.7
但是,如果通过简单的命令不能按预期工作
Select VersionNumber
From @tblVersion
Order By VersionNumber
VersionNumber
1.3.1
1.3.2.5
1.4.1.7.12
1.4.11.14.7
1.4.3.109.1
1.4.8.66
需要帮助
实施大脑解决方案
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 c1
Group By c1.Rn,c1.VersionNumber
)
Select VersionNumber
From CTE3
Order By SortableVersion
以下的宏为configure脚本管理版本号。使用它们是可选的。 宏: AC_PREREQ version) 确保使用的是足够新的Autoconf版本。如果用于创建configure的Autoconf的版本比version 要早,就在标准错误输出打印一条错 误消息并不会创建configure。例如:AC—PREREQ(1.8) 如果你的'configure.in'依赖于在不同Autoconf版本中改
问题内容: 在Oracle中,仅使用不会对版本号进行排序。我的字段被声明为a,并且无法更改。例如:以下版本: 应该排序为 我研究了几篇文章,但似乎都没有真正达到我的目的,或者答案是针对SQL Server等的,而不是针对Oracle的。我碰到了这个看起来很有效的特定sql。 以这种方式对版本进行排序: 我相信此sql语句适用于: 但是,这不适用于Oracle。在Oracle中,hierarchyi
+++ get:/ <<< success { "code":1, "msg":"恭喜您,API访问成功!", "data":{ "version":"1.0.0", "doc":"http://www.kancloud.cn/thinkcmf/cmf5api" } } +++
本文向大家介绍SqlServer高版本数据备份还原到低版本,包括了SqlServer高版本数据备份还原到低版本的使用技巧和注意事项,需要的朋友参考一下 最近遇见一个问题: 想要将Sqlserver高版本备份的数据还原到低版本SqlServer上去,但是这在SqlServer中是没法直接还原数据库的,所以经过一系列的请教总结出来一下可用方法。 首先、你得在电脑上装有你将要操作的高版本以及低版本的
问题内容: 我想写一个样功能,比较两个版本号,并返回,或根据自己的比较valuses。 如果版本A早于版本B,则返回 返回如果版本A和B是等价的 如果版本A比版本B更新,则返回 每个小节都应解释为一个数字,因此1.10> 1.1。 所需的功能输出为 这是我的实现,有待改进: 我正在使用Python 2.4.5 btw。(安装在我的工作地点…)。 这是您可以使用的小型“测试套件” 问题答案: 删除字
我正在使用MySQL5.5版本编写SQL查询来进行排序。我的问题是无法正确使用SQL查询下面的列排序。 这是我的数据库链接,显示我的排序错误https://dbfiddle.uk/?rdbms=mysql_5.5&fiddle=bcb32a6b47d0d5b061fd401d0888bdc3 实际上,我想对列模式进行排序,如下所示: 我的错误排序在MySQL5.5的结果,它不能正确排序在表。 错误