Freigeben über


VECTOR_NORM (Transact-SQL) (Vorschau)

Gilt für: Azure SQL-Datenbank

Hinweis

Dieser Datentyp befindet sich in der Vorschau und kann geändert werden. Lesen Sie die Nutzungsbedingungen für die Vorschau im Dokument Vereinbarungen zum Servicelevel (Service Level Agreements, SLAs) für Onlinedienste.

Verwendet einen Vektor als Eingabe und gibt die Norm des Vektors (ein Maß für seine Länge oder Größe) in einem bestimmten Normtyp zurück.

Wenn Sie z. B. die Euklidische Norm berechnen möchten (dies ist der häufigste Normtyp), können Sie Folgendes verwenden:

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

Syntax

Transact-SQL-Syntaxkonventionen

VECTOR_NORM ( vector, norm_type )

Argumente

Vektor

Ein Ausdruck, der den Vektordatentyp auswertet.

norm_type

Eine Zeichenfolge mit dem Namen des Normtyps zum Berechnen der Norm des angegebenen Vektors. Die folgenden Normtypen werden unterstützt:

  • norm1 - Die 1-Norm, die die Summe der absoluten Werte der Vektorkomponenten ist.
  • norm2 - Die 2-Norm, auch bekannt als euklidische Norm, die die Quadratwurzel der Summe der Quadrate der Vektorkomponenten ist.
  • norminf - Die Unendlichkeitsnorm, die das Maximum der absoluten Werte der Vektorkomponenten ist.

Rückgabewert

Die Funktion gibt einen Float-Wert zurück, der die Norm des Vektors mithilfe des angegebenen Normtyps darstellt.

Wenn norm_type kein gültiger Normtyp ist und der Vektor nicht vom Vektordatentyp ist, wird ein Fehler zurückgegeben.

Beispiele

Beispiel 1

Im folgenden Beispiel wird ein Vektor mit drei Dimensionen aus einer Zeichenfolge mit einem JSON-Array erstellt.

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;

Die erwarteten Rückgabewerte wären:

norm2 norm1 norminf
3.7416573867739413 6,0 3.0

Beispiel 2

Im folgenden Beispiel wird die Norm der einzelnen Vektoren in einer Tabelle berechnet.

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;