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


VECTOR_NORM (Transact-SQL) (предварительная версия)

Применимо к: SQL Server 2025 (17.x) Предварительная версия Azure SQL DatabaseAzure SQL Managed InstanceБаза данных SQL в Microsoft Fabric Preview

Используется VECTOR_NORM для принятия вектора в качестве входных данных и возвращения нормы вектора (которая является мерой его длины или величины) в заданном типе норм.

Например, если вы хотите вычислить норму Евклиида (который является наиболее распространенным типом норм), можно использовать следующее:

SELECT VECTOR_NORM ( vector, 'norm2' )
FROM ...

Note

Этот тип данных находится в предварительной версии и подлежит изменению. Обязательно ознакомьтесь с условиями использования предварительной версии в документе соглашения об уровне обслуживания (SLA) для веб-служб .

VECTOR_NORM доступен в Управляемом экземпляре SQL Azure, настроенном с помощью политики обновления Always-up-to-date .

Syntax

Соглашения о синтаксисе Transact-SQL

VECTOR_NORM ( vector, norm_type )

Arguments

vector

Выражение, которое оценивает тип векторных данных.

norm_type

Строка с именем типа норм, используемого для вычисления нормы заданного вектора. Поддерживаются следующие типы норм:

  • norm1 — 1-норма, которая является суммой абсолютных значений векторных компонентов.
  • norm2 - 2-норма, также известная как евклидеанской норме, которая является квадратным корнем суммы квадратов векторных компонентов.
  • norminf - Норма бесконечности, которая является максимумом абсолютных значений векторных компонентов.

Return value

Функция возвращает значение с плавающей запятой , представляющее норму вектора с помощью указанного типа норм.

Ошибка возвращается, если norm_type не является допустимым типом норм и если вектор не является типом векторных данных.

Examples

Example 1

В следующем примере создается вектор с тремя измерениями из строки с массивом JSON.

DECLARE @v VECTOR(3) = '[1, 2, 3]';

SELECT 
    vector_norm(@v, 'norm2') AS norm2,
    vector_norm(@v, 'norm1') AS norm1,
    vector_norm(@v, 'norminf') AS norminf;

Ожидаемые возвращаемые значения будут:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

Example 2

В следующем примере вычисляется норма каждого вектора в таблице.

CREATE TABLE dbo.vectors
(
  ID INT PRIMARY KEY,
  v VECTOR(3) NOT NULL
);

INSERT INTO dbo.vectors (ID, v) VALUES 
(1, '[0.1, -2, 42]'),
(2, '[2, 0.1, -42]');

SELECT 
  ID, 
  VECTOR_NORM(v, 'norm2') AS norm 
FROM 
  dbo.vectors;