Megosztás a következőn keresztül:


VECTOR_NORM (Transact-SQL)

A következőkre vonatkozik: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Database a Microsoft Fabricben

Egy vektor bemenetként való beírására szolgál VECTOR_NORM , és visszaadja a vektor normát (amely annak hosszát vagy nagyságát méri) egy adott normatípusban.

Ha például ki szeretné számítani az euklideszi normát (amely a leggyakoribb normatípus), a következőt használhatja:

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

Note

VECTOR_NORM a felügyelt Azure SQL-példányban az SQL Server 2025 vagy az Always-up-todátumfrissítésiszabályzattal érhető el.

Syntax

Transact-SQL szintaxis konvenciók

VECTOR_NORM ( vector , norm_type )

Arguments

vektor

Vektor adattípusra kiértékelt kifejezés.

norm_type

A normatípus nevével ellátott sztring, amely az adott vektor normának kiszámításához használható. A következő normatípusok támogatottak:

  • norm1 - Az 1-norma, amely a vektorösszetevők abszolút értékeinek összege.
  • norm2 - A 2-norma, más néven euklideszi norma, amely a vektorkomponensek négyzetének négyzetgyöke.
  • norminf - A végtelen norma, amely a vektorösszetevők abszolút értékeinek maximális értéke.

Visszaadott érték

A függvény egy lebegőpontos értéket ad vissza, amely a vektor normát képviseli a megadott normatípus használatával.

A hiba akkor jelenik meg, ha norm_type nem érvényes normatípus, és ha a vektor nem a vektor adattípusa.

Examples

1. példa

Az alábbi példa egy JSON-tömböt tartalmazó sztringből három dimenzióval rendelkező vektort hoz létre.

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;

A várt visszatérési értékek a következőek lehetnek:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

2. példa

Az alábbi példa kiszámítja a táblázat egyes vektorainak normáit.

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;