parse_version()
Converts the input string representation of version to a comparable decimal number.
parse_version("0.0.0.1")
Syntax
parse_version ( Expr )
Arguments
Expr: A scalar expression of typestringthat specifies the version to be parsed.
Note
- Input string must contain from one to four version parts, represented as numbers and separated with dots ('.').
- Each part of version may contain up to eight digits, with the max value at 99999999.
- If the number of parts is less than four, all the missing parts are considered as trailing (
1.0==1.0.0.0).
Returns
If conversion is successful, the result will be a decimal.
If conversion is unsuccessful, the result will be null.
Example
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 | higher_version |
|---|---|---|
| 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 |
Feedback
Submit and view feedback for