Partager via


VECTOR_NORM (Transact-SQL)

S’applique à : Base de données SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL dans Microsoft Fabric

Permet VECTOR_NORM de prendre un vecteur comme entrée et de retourner la norme du vecteur (qui est une mesure de sa longueur ou de sa magnitude) dans un type de norme donné.

Par exemple, si vous souhaitez calculer la norme Euclide (qui est le type de norme le plus courant), vous pouvez utiliser :

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

Note

VECTOR_NORMest disponible dans Azure SQL Managed Instance avec la stratégie de mise à jourSQL Server 2025 ou Always-up-to-date.

Syntax

Conventions de la syntaxe Transact-SQL

VECTOR_NORM ( vector , norm_type )

Arguments

vector

Expression qui prend la valeur du type de données vectorielle .

norm_type

Chaîne portant le nom du type de norme à utiliser pour calculer la norme du vecteur donné. Les types de norme suivants sont pris en charge :

  • norm1 - La norme 1, qui est la somme des valeurs absolues des composants vectoriels.
  • norm2 - La norme 2, également appelée norme euclide, qui est la racine carrée de la somme des carrés des composants vectoriels.
  • norminf - Norme d’infini, qui est la valeur maximale des valeurs absolues des composants vectoriels.

Valeur retournée

La fonction retourne une valeur float qui représente la norme du vecteur à l’aide du type de norme spécifié.

Une erreur est retournée si norm_type n’est pas un type de norme valide et si le vecteur n’est pas du type de données vectorielle.

Examples

Exemple 1

L’exemple suivant crée un vecteur avec trois dimensions à partir d’une chaîne avec un tableau JSON.

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

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

Les valeurs de retour attendues sont les suivantes :

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

Exemple 2

L’exemple suivant calcule la norme de chaque vecteur dans une table.

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;