我有包含版本的sql字符串列,
例如:'2.0','1.0.1.0','12 .5','2.6'
如何通过sql查询从此列中获取最大值?
答案 0 :(得分:1)
如果其MS SQL服务器可以运行:
Declare @t table (id varchar(50))
insert into @t values (2.0),(12.5),(2.6),(100.14)
select max(convert(float,id)) from @t
答案 1 :(得分:1)
您尝试过吗?
SELECT * FROM table ORDER BY version_column DESC limit 1;
答案 2 :(得分:1)
在大多数情况下,转换为纯数字不是正确的解决方案。例如,如果您有版本
12.0.0 和 1.21.0
结果为1200和1210,这很糟糕,因为1.21.0低于12.0.0
更好的主意是使用某种拆分方式将您的版本拆分为4个单独的数字(每个SQL引擎都有自己的谷歌搜索引擎),然后分别对每个版本进行排序。这是PostgreSQL中的示例
SELECT
SPLIT_PART(version, '.', 1) as major,
SPLIT_PART(version, '.', 2) as minor,
SPLIT_PART(version, '.', 3) as hotfix,
version
FROM temp
ORDER BY major DESC,minor DESC,hotfix DESC
LIMIT 1
这样,您将不必费心将其转换为一个数字并遇到转换错误。