Compartir por


VECTOR_NORM (Transact-SQL)

Se aplica a: SQL Server 2025 (17.x) Base de datos SQL de Azure SQL Database deAzure SQL Managed Instanceen Microsoft Fabric

Use VECTOR_NORM para tomar un vector como entrada y devolver la norma del vector (que es una medida de su longitud o magnitud) en un tipo de norma determinado.

Por ejemplo, si desea calcular la norma euclidiana (que es el tipo de norma más común), puede usar:

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

Note

VECTOR_NORMestá disponible en Instancia administrada de Azure SQL con la directiva de actualización de sql Server 2025 o Always-up-to-date.

Syntax

Convenciones de sintaxis de Transact-SQL

VECTOR_NORM ( vector , norm_type )

Arguments

vector

Expresión que se evalúa como el tipo de datos vectorial .

norm_type

Cadena con el nombre del tipo de norma que se va a usar para calcular la norma del vector especificado. Se admiten los siguientes tipos de normas:

  • norm1 - La norma 1, que es la suma de los valores absolutos de los componentes vectoriales.
  • norm2 - La norma 2, también conocida como norma euclidiana, que es la raíz cuadrada de la suma de los cuadrados de los componentes vectoriales.
  • norminf - La norma infinity, que es el máximo de los valores absolutos de los componentes vectoriales.

Valor devuelto

La función devuelve un valor float que representa la norma del vector mediante el tipo de norma especificado.

Se devuelve un error si norm_type no es un tipo de norma válido y si el vector no es del tipo de datos vectorial.

Examples

Ejemplo 1

En el ejemplo siguiente se crea un vector con tres dimensiones a partir de una cadena con una matriz 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;

Los valores devueltos esperados serían:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

Ejemplo 2

En el ejemplo siguiente se calcula la norma de cada vector de una tabla.

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;