VECTOR_NORM (Transact-SQL) (préversion)
S’applique à : Azure SQL Database
Remarque
Ce type de données est en préversion et peut être modifié. Veillez à lire les termes d’utilisation de la préversion dans le document Contrats de niveau de service (SLA) pour Services en ligne.
La fonction VECTOR_NORM
prend un vecteur comme entrée et retourne 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_column, 'norm2' )
FROM ...
Syntaxe
Conventions de la syntaxe Transact-SQL
VECTOR_NORM ( vector_column, norm_type )
Arguments
vector_column
Expression qui prend la valeur d’un vecteur. Cette colonne doit être du nouveau type de données vectorielles
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 vector_column n’est pas du type de vecteur .
Exemples
Exemple 1
L’exemple suivant crée un vecteur avec trois dimensions à partir d’une chaîne avec un tableau 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;
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;