我已经尝试了明显的select min(version) from t
方法,但这不起作用,因为引擎认为(并且正确地)字符串'1.12.0.0'小于'1.2.0.0',这显然不是版本号的情况.
我知道我可以轻松地动态拆分 4 个数字(使用计算列或视图),然后我可以使用select top 1 row from myview order by a asc, b asc, c asc, d asc
...但我很想知道是否有更简单的方法来实现这一目标
我已经尝试了明显的select min(version) from t
方法,但这不起作用,因为引擎认为(并且正确地)字符串'1.12.0.0'小于'1.2.0.0',这显然不是版本号的情况.
我知道我可以轻松地动态拆分 4 个数字(使用计算列或视图),然后我可以使用select top 1 row from myview order by a asc, b asc, c asc, d asc
...但我很想知道是否有更简单的方法来实现这一目标
如果您的版本号最多包含 4 个以点分隔的数字,则可以滥用该parsename
功能:
select top 1 *
from Versions
order by
cast(parsename(Version, 4) as int)
, cast(parsename(Version, 3) as int)
, cast(parsename(Version, 2) as int)
, cast(parsename(Version, 1) as int)