Condividi tramite


VECTOR_NORM (Transact-SQL) (anteprima)

Si applica a: Database SQL di Azure

Nota

Questo tipo di dati è in anteprima ed è soggetto a modifiche. Assicurarsi di leggere le condizioni di utilizzo dell'anteprima nel documento Contratti di servizio (SLA) per Online Services .

La funzione VECTOR_NORM accetta un vettore come input e restituisce la norma del vettore (che è una misura della sua lunghezza o grandezza) in un determinato tipo di norma

Ad esempio, se si desidera calcolare la norma euclidea (che è il tipo di norma più comune), è possibile usare:

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

Sintassi

Convenzioni relative alla sintassi Transact-SQL

VECTOR_NORM ( vector_column, norm_type )

Argomenti

vector_column

Espressione che restituisce un vettore. Questa colonna deve essere del nuovo tipo di dati vettoriale

norm_type

Stringa con il nome del tipo di norma da utilizzare per calcolare la norma del vettore specificato. Sono supportati i tipi di norma seguenti:

  • norm1 - La norma 1, ovvero la somma dei valori assoluti dei componenti vettoriali.
  • norm2 - La norma 2, nota anche come Norm euclidea, che è la radice quadrata della somma dei quadrati dei componenti vettoriali.
  • norminf - Norma infinito, ovvero il massimo dei valori assoluti dei componenti vettoriali.

Valore restituito

La funzione restituisce un valore float che rappresenta la norma del vettore usando il tipo di norma specificato.

Viene restituito un errore se norm_type non è un tipo di norma valido e se il vector_column non è del tipo vector .

Esempi

Esempio 1

L'esempio seguente crea un vettore con tre dimensioni da una stringa con una matrice 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;

I valori restituiti previsti sono:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

Esempio 2

Nell'esempio seguente viene calcolata la norma di ogni vettore in una tabella.

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;