Sdílet prostřednictvím


VECTOR_NORM (Transact-SQL)

Platí pro: SQL Server 2025 (17.x) Azure SQL Database Azure SQLManaged InstanceSQL Database v Microsoft Fabric

Použije VECTOR_NORM se k převzetí vektoru jako vstupu a vrácení normy vektoru (což je míra jeho délky nebo velikosti) v daném typu normy.

Pokud například chcete vypočítat normu Euclidean (což je nejběžnější typ normy), můžete použít:

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

Note

VECTOR_NORMje k dispozici ve službě Azure SQL Managed Instance se zásadami aktualizaceSQL Serveru 2025 nebo Always-up-to-date.

Syntax

Transact-SQL konvence syntaxe

VECTOR_NORM ( vector , norm_type )

Arguments

vektor

Výraz, který se vyhodnotí jako vektorový datový typ.

norm_type

Řetězec s názvem typu normy, který se má použít k výpočtu normy daného vektoru. Podporují se následující typy norem:

  • norm1 - 1 norma, což je součet absolutních hodnot vektorových složek.
  • norm2 - 2 normu, označovanou také jako Euclidean Norm, což je druhá odmocnina součtu čtverců vektorových složek.
  • norminf - nekonečná norma, což je maximum absolutních hodnot vektorových složek.

Návratová hodnota

Funkce vrátí hodnotu float , která představuje normu vektoru pomocí zadaného typu normy.

Pokud norm_type není platným normovým typem a vektor není datový typ vektoru, vrátí se chyba.

Examples

Příklad 1

Následující příklad vytvoří vektor se třemi dimenzemi z řetězce s polem 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;

Očekávané návratové hodnoty by byly:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

Příklad 2

Následující příklad vypočítá normu každého vektoru v tabulce.

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;