Compartilhar via


VECTOR_NORM (Transact-SQL)

Aplica-se a: SQL Server 2025 (17.x) Banco de Dados SQL do AzureBanco de DadosSQL do Azure Banco de Dados SQL banco de dados SQL do Banco de Dados SQL do Azurebanco de dados SQL no Microsoft Fabric

Use VECTOR_NORM para usar um vetor como entrada e retornar a norma do vetor (que é uma medida de seu comprimento ou magnitude) em um determinado tipo de norma.

Por exemplo, se você deseja calcular a norma euclidiana (que é o tipo de norma mais comum), você pode usar:

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

Note

VECTOR_NORMestá disponível na Instância Gerenciada de SQL do Azure com a política de atualização do SQL Server 2025 ou Always-up-to-date.

Syntax

Convenções de sintaxe de Transact-SQL

VECTOR_NORM ( vector , norm_type )

Arguments

vetor

Uma expressão que é avaliada como tipo de dados de vetor .

norm_type

Uma string com o nome do tipo de norma a ser usado para calcular a norma do vetor fornecido. Os seguintes tipos de norma são suportados:

  • norm1 - A norma 1, que é a soma dos valores absolutos dos componentes vetoriais.
  • norm2 - A norma 2, também conhecida como Norma Euclidiana, que é a raiz quadrada da soma dos quadrados dos componentes do vetor.
  • norminf - A norma do infinito, que é o máximo dos valores absolutos dos componentes vetoriais.

Valor de retorno

A função retorna um valor flutuante que representa a norma do vetor usando o tipo de norma especificado.

Um erro será retornado se norm_type não for um tipo de norma válido e se o vetor não for do tipo de dados de vetor.

Examples

Exemplo 1

O exemplo a seguir cria um vetor com três dimensões de uma cadeia de caracteres com uma 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;

Os valores de retorno esperados seriam:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

Exemplo 2

O exemplo a seguir calcula a norma de cada vetor em uma tabela.

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;