Поделиться через


parse_version()

Область применения: ✅Microsoft Fabric

Преобразует входное строковое представление номера версии в десятичное число, которое можно сравнить.

Синтаксис

parse_version ( Версия)

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
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"
];
dt
| extend parsedVersion = parse_version(v)

Выходные данные

v parsedVersion
0.0.0.5 5
0.0.7.0 700,000,000
0.0.3 300,000,000
0,2 20,000,000,000,000,000
0.1.2.0 10,000,000,200,000,000
1.2.3.4 1,000,000,020,000,000,300,000,004
1 1,000,000,000,000,000,000,000,000

Сравнение строк синтаксического анализа версий

Следующий запрос определяет, какие лаборатории нуждаются в обновлении оборудования, сравнивая их строки синтаксической версии с минимальным номером версии "1.0.0.0.0".

let dt = datatable(lab: string, v: string)
[
    "Lab A", "0.0.0.5",
    "Lab B", "0.0.7.0",
    "Lab D","0.0.3",
    "Lab C", "0.2", 
    "Lab G", "0.1.2.0",
    "Lab F", "1.2.3.4",
    "Lab E", "1",
];
dt
| extend parsed_version = parse_version(v)
| extend needs_update = iff(parsed_version < parse_version("1.0.0.0"), "Yes", "No")
| project lab, v, needs_update
| sort by lab asc , v, needs_update

Выходные данные

лаборатория v needs_update
Лаборатория A 0.0.0.5 Да
Лаборатория B 0.0.7.0 Да
Лаборатория C 0,2 Да
Лаборатория D 0.0.3 Да
Lab E 1 Нет
Лаборатория F 1.2.3.4 Нет
Лаборатория G 0.1.2.0 Да