Delen via


VECTOR_NORM (Transact-SQL) (preview)

Van toepassing op:Azure SQL Database

Opmerking

Dit gegevenstype is in preview en kan worden gewijzigd. Lees de preview-gebruiksvoorwaarden in het SLA (Service Level Agreements) voor Online Services document.

Neemt een vector als invoer en retourneert de norm van de vector (een meting van de lengte of grootte) in een bepaald normtype.

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 ...

Syntaxis

Transact-SQL syntaxis-conventies

VECTOR_NORM ( vector, norm_type )

Argumenten

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 als de vector niet van het vectorgegevenstype is.

Voorbeelden

Voorbeeld 1

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

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;

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;