Sdílet prostřednictvím


VECTOR_NORM (Transact-SQL) (Preview)

Týká se:Azure SQL Database

Poznámka:

Tento datový typ je ve verzi Preview a může se změnit. Nezapomeňte si přečíst podmínky použití verze Preview v dokumentu Smlouvy o úrovni služeb (SLA) pro online služby.

Vezme vektor jako vstup a vrátí normu 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 ...

Syntaxe

Transact-SQL konvence syntaxe

VECTOR_NORM ( vector, norm_type )

Argumenty

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-norm, také známý 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 standardním typem a vektor není datový typ vektoru, vrátí se chyba.

Příklady

Příklad 1

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

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;