parse_version()
将版本的输入字符串表示形式转换为可比较的十进制数字。
语法
parse_version
(
版本)
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
version | string |
✔️ | 要分析的版本。 |
注意
- 版本必须包含一到四个版本部分,用数字表示,并用点(“.”)分隔。
- 版本的每个部分最多可包含八个数字,最大值为 99999999。
- 如果少于四个部分,则所有缺少的部分将被视为尾随部分。 例如,
1.0
==1.0.0.0
。
返回
如果转换成功,则结果将为小数。
如果转换不成功,则结果将为 null
。
示例
let dt = datatable(v: string)
[
"0.0.0.5", "0.0.7.0", "0.0.3", "0.2", "0.1.2.0", "1.2.3.4", "1", "99999999.0.0.0"
];
dt
| project v1=v, _key=1
| join kind=inner (dt | project v2=v, _key = 1) on _key
| where v1 != v2
| summarize v1 = max(v1), v2 = min(v2) by (hash(v1) + hash(v2)) // removing duplications
| project v1, v2, higher_version = iif(parse_version(v1) > parse_version(v2), v1, v2)
输出
v1 | v2 | 更高版本 |
---|---|---|
99999999.0.0.0 | 0.0.0.5 | 99999999.0.0.0 |
1 | 0.0.0.5 | 1 |
1.2.3.4 | 0.0.0.5 | 1.2.3.4 |
0.1.2.0 | 0.0.0.5 | 0.1.2.0 |
0.2 | 0.0.0.5 | 0.2 |
0.0.3 | 0.0.0.5 | 0.0.3 |
0.0.7.0 | 0.0.0.5 | 0.0.7.0 |
99999999.0.0.0 | 0.0.7.0 | 99999999.0.0.0 |
1 | 0.0.7.0 | 1 |
1.2.3.4 | 0.0.7.0 | 1.2.3.4 |
0.1.2.0 | 0.0.7.0 | 0.1.2.0 |
0.2 | 0.0.7.0 | 0.2 |
0.0.7.0 | 0.0.3 | 0.0.7.0 |
99999999.0.0.0 | 0.0.3 | 99999999.0.0.0 |
1 | 0.0.3 | 1 |
1.2.3.4 | 0.0.3 | 1.2.3.4 |
0.1.2.0 | 0.0.3 | 0.1.2.0 |
0.2 | 0.0.3 | 0.2 |
99999999.0.0.0 | 0.2 | 99999999.0.0.0 |
1 | 0.2 | 1 |
1.2.3.4 | 0.2 | 1.2.3.4 |
0.2 | 0.1.2.0 | 0.2 |
99999999.0.0.0 | 0.1.2.0 | 99999999.0.0.0 |
1 | 0.1.2.0 | 1 |
1.2.3.4 | 0.1.2.0 | 1.2.3.4 |
99999999.0.0.0 | 1.2.3.4 | 99999999.0.0.0 |
1.2.3.4 | 1 | 1.2.3.4 |
99999999.0.0.0 | 1 | 99999999.0.0.0 |