Compartir a través de


VECTOR_NORM (Transact-SQL) (versión preliminar)

Se aplica a: Azure SQL Database

Nota:

Este tipo de datos está en versión preliminar y está sujeto a cambios. Asegúrese de leer los términos de uso de la versión preliminar en el documento Acuerdo de Nivel de Servicio (SLA) para servicios en línea.

La función VECTOR_NORM toma un vector como entrada y devuelve 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_column, 'norm2' )
FROM ...

Sintaxis

Convenciones de sintaxis de Transact-SQL

VECTOR_NORM ( vector_column, norm_type )

Argumentos

vector_column

Expresión que se evalúa como un vector. Esta columna debe ser del nuevo 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_column no es del tipo de vector .

Ejemplos

Ejemplo 1

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

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;