Delen via


VECTOR_NORM (Transact-SQL)

Van toepassing op: SQL Server 2025 (17.x) Preview AzureSQL Database Azure SQL Managed InstanceSQL-databasein Microsoft Fabric Preview

Gebruik VECTOR_NORM deze methode om een vector als invoer te gebruiken en de norm van de vector (een meting van de lengte of grootte) in een bepaald normtype te retourneren.

Als u bijvoorbeeld de Euclidean-norm wilt berekenen (dit is het meest voorkomende normtype), kunt u het volgende gebruiken:

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

Note

VECTOR_NORMis beschikbaar in Azure SQL Managed Instance met het updatebeleid voor SQL Server 2025 of Always-up-to-date update.

Syntax

Transact-SQL syntaxis-conventies

VECTOR_NORM ( vector , norm_type )

Arguments

vector

Een expressie die het gegevenstype vector evalueert.

norm_type

Een tekenreeks met de naam van het normtype dat moet worden gebruikt om de norm van de opgegeven vector te berekenen. De volgende normtypen worden ondersteund:

  • norm1 - De 1-norm, de som van de absolute waarden van de vectoronderdelen.
  • norm2 - De 2-norm, ook wel bekend als de Euclidische norm, die de vierkantswortel is van de som van de kwadraten van de vectorcomponenten.
  • norminf - De oneindigheidsnorm, het maximum van de absolute waarden van de vectoronderdelen.

Retourwaarde

De functie retourneert een float-waarde die de norm van de vector aangeeft met behulp van het opgegeven normtype.

Er wordt een fout geretourneerd als norm_type geen geldig normtype is en of de vector niet van het vectorgegevenstype is.

Examples

Voorbeeld 1

In het volgende voorbeeld wordt een vector gemaakt met drie dimensies van een tekenreeks met een JSON-matrix.

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;

De verwachte retourwaarden zijn:

norm2 norm1 norminf
3.7416573867739413 6.0 3.0

Voorbeeld 2

In het volgende voorbeeld wordt de norm van elke vector in een tabel berekend.

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;