Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
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;